Maak willekeurige IBAN's die voldoen aan het formaat of valideer bestaande met onze eenvoudige tool. Perfect voor het testen van financiële applicaties, banksoftware en educatieve doeleinden.
De International Bank Account Number (IBAN) Generator en Validator is een uitgebreide tool die is ontworpen voor test- en verificatiedoeleinden in financiële toepassingen, banksoftware en educatieve contexten. Deze gebruiksvriendelijke applicatie biedt twee essentiële functies: het genereren van willekeurige maar format-conforme IBAN's en het valideren van de structurele integriteit van door de gebruiker ingevoerde IBAN's. Of je nu een ontwikkelaar bent die financiële software test, een QA-specialist die banktoepassingen verifieert, of een educator die internationale banknormen uitlegt, deze tool biedt een eenvoudige oplossing zonder complexe configuraties of integraties van derden.
IBAN's (International Bank Account Numbers) zijn gestandaardiseerde rekeningidentificatoren die internationaal worden gebruikt om grensoverschrijdende transacties te vergemakkelijken en fouten bij internationale geldtransfers te verminderen. Elke IBAN bestaat uit een landcode, controlecijfers en een basis bankrekeningnummer (BBAN) dat volgt op land-specifieke formaten. Onze tool ondersteunt meerdere landformaten en zorgt ervoor dat alle gegenereerde IBAN's de MOD 97 validatie-algoritme doorstaan zoals gespecificeerd in de ISO 13616 standaard.
Een IBAN bestaat uit maximaal 34 alfanumerieke tekens, hoewel de exacte lengte per land varieert. De standaardstructuur omvat:
Bijvoorbeeld, een Duitse IBAN volgt de structuur DE2!n8!n10!n
waarbij:
DE
de landcode is2!n
staat voor twee numerieke controlecijfers8!n
staat voor een acht-cijferige bankcode10!n
staat voor een tien-cijferig rekeningnummerVerschillende landen hebben verschillende BBAN-formaten, wat resulteert in variërende IBAN-lengtes:
Land | Lengte | Structuur | Voorbeeld |
---|---|---|---|
Duitsland (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
VK (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
Frankrijk (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
Spanje (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
Italië (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Het IBAN validatieproces gebruikt het MOD 97-algoritme zoals gespecificeerd in de ISO 7064 standaard. Hier is hoe het werkt:
Wiskundig wordt dit weergegeven als:
Onze validator implementeert dit algoritme om de structurele integriteit van elke door gebruikers ingevoerde IBAN te verifiëren.
De IBAN-generator creëert willekeurige maar geldige IBAN's voor testdoeleinden. Belangrijke kenmerken zijn onder andere:
De generator creëert IBAN's door:
De IBAN-validator controleert de structurele integriteit van door de gebruiker ingevoerde IBAN's. Belangrijke kenmerken zijn onder andere:
De validator voert meerdere controles uit:
De IBAN Generator en Validator tool dient meerdere doeleinden in verschillende domeinen:
Hoewel onze IBAN Generator en Validator tool een gestroomlijnde ervaring biedt voor testdoeleinden, zijn er alternatieve benaderingen om te overwegen:
Onze tool overbrugt de kloof tussen deze alternatieven door een eenvoudige, toegankelijke interface te bieden voor zowel generatie als validatie zonder technische integratie of betaalde abonnementen.
Een IBAN (International Bank Account Number) is een gestandaardiseerd internationaal nummeringssysteem dat is ontwikkeld om bankrekeningen over de landsgrenzen heen te identificeren. Het is vastgesteld door de International Organization for Standardization (ISO) om foutloze internationale transacties te vergemakkelijken.
De IBAN-generator creëert structureel geldige IBAN's die de MOD 97 controle-algoritme doorstaan zoals gespecificeerd in de ISO 13616 standaard. Hoewel de gegenereerde IBAN's wiskundig geldig zijn, zijn ze willekeurig en niet gekoppeld aan echte bankrekeningen, waardoor ze perfect zijn voor testen maar niet voor echte transacties.
De tool ondersteunt momenteel IBAN-formaten voor Duitsland, Verenigd Koninkrijk, Frankrijk, Spanje, Italië, Nederland, Zwitserland, Oostenrijk, België en Polen. Deze dekken de meest gebruikte IBAN-formaten in Europa.
Nee. De IBAN's die door deze generator zijn gemaakt, zijn structureel geldig maar willekeurig gegenereerd. Ze zijn niet verbonden met echte bankrekeningen en mogen alleen worden gebruikt voor test-, educatieve of demonstratiedoeleinden.
De validator controleert verschillende aspecten van een IBAN:
Nee. Hoewel IBAN's vaak worden weergegeven met spaties voor leesbaarheid (meestal in groepen van vier tekens), worden de spaties genegeerd tijdens de validatie. Onze tool behandelt zowel geformatteerde als ongeformatteerde IBAN's.
Nee. Deze tool werkt volledig in je browser. Geen IBAN-gegevens worden naar een server verzonden, opgeslagen of gedeeld met derden. Je gegevens blijven privé en veilig.
Momenteel valideert de tool alleen IBAN's uit de ondersteunde landen die in de dropdownlijst staan. Als je validatie nodig hebt voor aanvullende landen, laat het ons dan weten via het feedbackformulier.
Een IBAN kan om verschillende redenen de validatie niet doorstaan:
We verwelkomen feedback om de tool te verbeteren. Gebruik het feedbackformulier dat toegankelijk is via de link onderaan de pagina om eventuele problemen te melden of verbeteringen voor te stellen.
Voor ontwikkelaars die geïnteresseerd zijn in het implementeren van IBAN-validatie en -generatie in hun eigen toepassingen, zijn hier codevoorbeelden in verschillende programmeertalen:
1function validateIban(iban) {
2 // Verwijder spaties en zet om naar hoofdletters
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Basisformat controle
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Verplaats de eerste 4 tekens naar het einde
11 const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12 // Zet letters om in cijfers
13 const converted = rearranged.split('').map(char => {
14 if (/[A-Z]/.test(char)) {
15 return (char.charCodeAt(0) - 55).toString();
16 }
17 return char;
18 }).join('');
19
20 // Bereken mod 97
21 let remainder = 0;
22 for (let i = 0; i < converted.length; i++) {
23 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
24 }
25
26 return remainder === 1;
27}
28
29// Voorbeeld gebruik
30console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
31console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
32console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (ongeldige controlecijfers)
33
1def validate_iban(iban):
2 # Verwijder spaties en zet om naar hoofdletters
3 iban = iban.replace(' ', '').upper()
4
5 # Basisformat controle
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Verplaats de eerste 4 tekens naar het einde
10 rearranged = iban[4:] + iban[:4]
11
12 # Zet letters om in cijfers (A=10, B=11, ..., Z=35)
13 converted = ''
14 for char in rearranged:
15 if char.isalpha():
16 converted += str(ord(char) - 55)
17 else:
18 converted += char
19
20 # Controleer of mod 97 gelijk is aan 1
21 return int(converted) % 97 == 1
22
23# Voorbeeld gebruik
24print(validate_iban('DE89 3704 0044 0532 0130 00')) # True
25print(validate_iban('GB29 NWBK 6016 1331 9268 19')) # True
26print(validate_iban('DE89 3704 0044 0532 0130 01')) # False (ongeldige controlecijfers)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Verwijder spaties en zet om naar hoofdletters
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Basisformat controle
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Verplaats de eerste 4 tekens naar het einde
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Zet letters om in cijfers
15 StringBuilder converted = new StringBuilder();
16 for (char c : rearranged.toCharArray()) {
17 if (Character.isLetter(c)) {
18 converted.append(c - 'A' + 10);
19 } else {
20 converted.append(c);
21 }
22 }
23
24 // Bereken mod 97
25 BigInteger numeric = new BigInteger(converted.toString());
26 return numeric.mod(BigInteger.valueOf(97)).intValue() == 1;
27 }
28
29 public static void main(String[] args) {
30 System.out.println(validateIban("DE89 3704 0044 0532 0130 00")); // true
31 System.out.println(validateIban("GB29 NWBK 6016 1331 9268 19")); // true
32 System.out.println(validateIban("DE89 3704 0044 0532 0130 01")); // false
33 }
34}
35
1function generateIban(countryCode) {
2 const countryFormats = {
3 'DE': { length: 22, bbanPattern: '8n10n' },
4 'GB': { length: 22, bbanPattern: '4a6n8n' },
5 'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6 // Voeg meer landen toe indien nodig
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Landcode ${countryCode} niet ondersteund`);
11 }
12
13 // Genereer willekeurige BBAN op basis van landformaat
14 let bban = '';
15 const pattern = countryFormats[countryCode].bbanPattern;
16 let i = 0;
17
18 while (i < pattern.length) {
19 const count = parseInt(pattern.substring(i + 1), 10);
20 const type = pattern[i];
21
22 if (type === 'n') {
23 // Genereer numerieke tekens
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Genereer alfabetische tekens
29 for (let j = 0; j < count; j++) {
30 bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
31 }
32 } else if (type === 'c') {
33 // Genereer alfanumerieke tekens
34 for (let j = 0; j < count; j++) {
35 const isLetter = Math.random() > 0.5;
36 if (isLetter) {
37 bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
38 } else {
39 bban += Math.floor(Math.random() * 10);
40 }
41 }
42 }
43
44 i += 2;
45 }
46
47 // Bereken controlecijfers
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Maak een initiële IBAN met '00' als controlecijfers
55 const initialIban = countryCode + '00' + bban;
56
57 // Verplaats en zet letters om in cijfers
58 const rearranged = bban + countryCode + '00';
59 const converted = rearranged.split('').map(char => {
60 if (/[A-Z]/.test(char)) {
61 return (char.charCodeAt(0) - 55).toString();
62 }
63 return char;
64 }).join('');
65
66 // Bereken 98 min mod 97
67 let remainder = 0;
68 for (let i = 0; i < converted.length; i++) {
69 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70 }
71
72 const checkDigits = (98 - remainder).toString().padStart(2, '0');
73 return checkDigits;
74}
75
76// Voorbeeld gebruik
77console.log(generateIban('DE')); // Genereert een geldige Duitse IBAN
78console.log(generateIban('GB')); // Genereert een geldige Britse IBAN
79
1import random
2import string
3
4def generate_iban(country_code):
5 country_formats = {
6 'DE': {'length': 22, 'bban_format': '8n10n'},
7 'GB': {'length': 22, 'bban_format': '4a6n8n'},
8 'FR': {'length': 27, 'bban_format': '5n5n11c2n'}
9 # Voeg meer landen toe indien nodig
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Landcode {country_code} niet ondersteund")
14
15 # Genereer willekeurige BBAN op basis van landformaat
16 bban = ''
17 format_str = country_formats[country_code]['bban_format']
18 i = 0
19
20 while i < len(format_str):
21 count = int(''.join(c for c in format_str[i+1:] if c.isdigit()))
22 type_char = format_str[i]
23
24 if type_char == 'n': # Numeriek
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alfabetisch
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alfanumeriek
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Bereken controlecijfers
34 check_digits = calculate_check_digits(country_code, bban)
35
36 return country_code + check_digits + bban
37
38def calculate_check_digits(country_code, bban):
39 # Maak een string voor de berekening van de controlecijfers
40 check_string = bban + country_code + '00'
41
42 # Zet letters om in cijfers (A=10, B=11, ..., Z=35)
43 numeric = ''
44 for char in check_string:
45 if char.isalpha():
46 numeric += str(ord(char.upper()) - 55)
47 else:
48 numeric += char
49
50 # Bereken 98 min mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Voorbeeld gebruik
57print(generate_iban('DE')) # Genereert een geldige Duitse IBAN
58print(generate_iban('GB')) # Genereert een geldige Britse IBAN
59
De IBAN Generator en Validator tool biedt een eenvoudige maar krachtige oplossing voor test- en educatieve doeleinden met betrekking tot internationale bankidentificatoren. Door zowel generatie- als validatiemogelijkheden te bieden in een gebruiksvriendelijke interface, elimineert het de noodzaak voor complexe configuraties of integraties van derden.
Of je nu financiële toepassingen ontwikkelt, betalingssysteem test of leert over internationale banknormen, deze tool biedt een eenvoudige manier om met IBAN's te werken. De uitgebreide validatie zorgt ervoor dat alle gegenereerde IBAN's structureel gezond en conform de internationale normen zijn.
Probeer nu een IBAN te genereren of te valideren om de mogelijkheden van de tool zelf te ervaren!
Ontdek meer tools die handig kunnen zijn voor uw workflow