Crea IBAN aleatoris que compleixin el format o valida els existents amb la nostra eina senzilla. Perfecte per a proves d'aplicacions financeres, programari bancari i fins i tot per a finalitats educatives.
L'Eina de Generació i Validació d'IBAN (Número de Compte Bancari Internacional) és una eina completa dissenyada per a proves i verificació en aplicacions financeres, programari bancari i contextos educatius. Aquesta aplicació d'usuari amigable ofereix dues funcions essencials: generar IBAN aleatoris però que compleixin el format i validar la integritat estructural dels IBAN introduïts pels usuaris. Tant si sou un desenvolupador que prova programari financer, un especialista en QA que verifica aplicacions bancàries, o un educador que explica els estàndards bancaris internacionals, aquesta eina proporciona una solució senzilla sense requerir configuracions complexes o integracions de tercers.
Els IBAN (Números de Compte Bancari Internacional) són identificadors de compte estàndard utilitzats internacionalment per facilitar transaccions transfrontereres i reduir errors en transferències de diners internacionals. Cada IBAN consisteix en un codi de país, dígits de control i un número de compte bancari bàsic (BBAN) que segueix formats específics del país. La nostra eina admet múltiples formats de país i assegura que tots els IBAN generats passin l'algorisme de validació MOD 97 especificat en l'estàndard ISO 13616.
Un IBAN consta d'un màxim de 34 caràcters alfanumèrics, tot i que la longitud exacta varia segons el país. L'estructura estàndard inclou:
Per exemple, un IBAN alemany segueix l'estructura DE2!n8!n10!n
on:
DE
és el codi de país2!n
representa dos dígits numèrics de control8!n
representa un codi bancari de vuit dígits10!n
representa un número de compte de deu dígitsDiferents països tenen diferents formats de BBAN, resultant en longituds d'IBAN variables:
País | Longitud | Estructura | Exemple |
---|---|---|---|
Alemanya (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
Regne Unit (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
França (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
Espanya (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
Itàlia (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
El procés de validació de l'IBAN utilitza l'algorisme MOD 97 tal com s'especifica en l'estàndard ISO 7064. Així és com funciona:
Matemàticament, això es representa com:
El nostre validador implementa aquest algorisme per verificar la integritat estructural de qualsevol IBAN introduït pels usuaris.
El generador d'IBAN crea IBAN aleatoris però vàlids per a fins de prova. Funcions clau inclouen:
El generador crea IBAN mitjançant:
El validador d'IBAN comprova la integritat estructural dels IBAN introduïts pels usuaris. Funcions clau inclouen:
El validador realitza múltiples comprovacions:
L'eina Generadora i Validadora d'IBAN serveix a múltiples propòsits en diferents dominis:
Si bé la nostra eina Generadora i Validadora d'IBAN ofereix una experiència simplificada per a fins de prova, hi ha enfocaments alternatius a considerar:
La nostra eina tanca la bretxa entre aquestes alternatives proporcionant una interfície senzilla i accessible tant per a la generació com per a la validació sense requerir integració tècnica o subscripcions de pagament.
Un IBAN (Número de Compte Bancari Internacional) és un sistema de numeració internacional estàndard desenvolupat per identificar comptes bancaris a través de fronteres nacionals. Va ser establert per l'Organització Internacional de Normalització (ISO) per facilitar transaccions internacionals sense errors.
El generador d'IBAN crea IBAN estructuralment vàlids que passen l'algorisme de comprovació MOD 97 tal com s'especifica en l'estàndard ISO 13616. Si bé els IBAN generats són matemàticament vàlids, són aleatoris i no estan vinculats a comptes bancaris reals, fent-los perfectes per a proves però no per a transaccions reals.
L'eina actualment admet formats d'IBAN per a Alemanya, Regne Unit, França, Espanya, Itàlia, Països Baixos, Suïssa, Àustria, Bèlgica i Polònia. Aquests cobreixen els formats d'IBAN més utilitzats a Europa.
No. Els IBAN creats per aquest generador són estructuralment vàlids però generats aleatòriament. No estan connectats a comptes bancaris reals i només s'han d'utilitzar per a proves, educació o fins de demostració.
El validador comprova diversos aspectes d'un IBAN:
No. Si bé els IBAN sovint es mostren amb espais per a la llegibilitat (normalment en grups de quatre caràcters), els espais es ignoren durant la validació. La nostra eina gestiona tant IBAN formats (amb espais) com no formats.
No. Aquesta eina opera totalment al vostre navegador. No es envia cap dada d'IBAN a cap servidor, no es guarda ni es comparteix amb tercers. Les vostres dades romanen privades i segures.
Actualment, l'eina només valida IBAN dels països compatibles que es mostren a la llista desplegable. Si necessiteu validació per a països addicionals, si us plau, feu-nos-ho saber a través del formulari de comentaris.
Un IBAN pot fallar la validació per diverses raons:
Acollim amb plaer els comentaris per millorar l'eina. Si us plau, utilitzeu el formulari de comentaris accessible a través de l'enllaç al final de la pàgina per informar de qualsevol problema o suggerir millores.
Per a desenvolupadors interessats en implementar la validació i generació d'IBAN en les seves pròpies aplicacions, aquí teniu exemples de codi en diversos llenguatges de programació:
1function validateIban(iban) {
2 // Remove spaces and convert to uppercase
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Check basic format
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Rearrange and convert letters to numbers
11 const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12 const converted = rearranged.split('').map(char => {
13 if (/[A-Z]/.test(char)) {
14 return (char.charCodeAt(0) - 55).toString();
15 }
16 return char;
17 }).join('');
18
19 // Calculate mod 97
20 let remainder = 0;
21 for (let i = 0; i < converted.length; i++) {
22 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
23 }
24
25 return remainder === 1;
26}
27
28// Example usage
29console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
30console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
31console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (invalid check digits)
32
1def validate_iban(iban):
2 # Remove spaces and convert to uppercase
3 iban = iban.replace(' ', '').upper()
4
5 # Basic format check
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Move first 4 characters to the end
10 rearranged = iban[4:] + iban[:4]
11
12 # Convert letters to numbers (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 # Check if mod 97 equals 1
21 return int(converted) % 97 == 1
22
23# Example usage
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 (invalid check digits)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Remove spaces and convert to uppercase
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Basic format check
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Move first 4 characters to the end
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Convert letters to numbers
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 // Calculate 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 // Add more countries as needed
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Country code ${countryCode} not supported`);
11 }
12
13 // Generate random BBAN based on country pattern
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 // Generate numeric characters
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Generate alphabetic characters
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 // Generate alphanumeric characters
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 // Calculate check digits
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Create initial IBAN with '00' as check digits
55 const initialIban = countryCode + '00' + bban;
56
57 // Rearrange and convert letters to numbers
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 // Calculate 98 minus 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// Example usage
77console.log(generateIban('DE')); // Generates a valid German IBAN
78console.log(generateIban('GB')); // Generates a valid UK 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 # Add more countries as needed
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Country code {country_code} not supported")
14
15 # Generate random BBAN based on country format
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': # Numeric
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alphabetic
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alphanumeric
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Calculate check digits
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 # Create string for check digit calculation
40 check_string = bban + country_code + '00'
41
42 # Convert letters to numbers (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 # Calculate 98 minus mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Example usage
57print(generate_iban('DE')) # Generates a valid German IBAN
58print(generate_iban('GB')) # Generates a valid UK IBAN
59
L'Eina de Generació i Validació d'IBAN proporciona una solució senzilla però potent per a proves i fins educatius relacionats amb identificadors bancaris internacionals. En oferir tant capacitats de generació com de validació en una interfície d'usuari amigable, elimina la necessitat de configuracions complexes o integracions de tercers.
Tant si esteu desenvolupant aplicacions financeres, provant sistemes de pagament o aprenent sobre estàndards bancaris internacionals, aquesta eina ofereix una manera senzilla de treballar amb IBAN. La validació completa assegura que tots els IBAN generats siguin estructuralment sòlids i compleixin els estàndards internacionals.
Proveu de generar o validar un IBAN ara per experimentar les capacitats de l'eina de primera mà!
Descobreix més eines que podrien ser útils per al teu flux de treball