Buat IBAN acak yang sesuai dengan format atau validasi yang sudah ada dengan alat sederhana kami. Sempurna untuk menguji aplikasi keuangan, perangkat lunak perbankan, dan tujuan pendidikan.
Alat Pembuat dan Validator Nomor Rekening Bank Internasional (IBAN) adalah alat komprehensif yang dirancang untuk tujuan pengujian dan verifikasi dalam aplikasi keuangan, perangkat lunak perbankan, dan konteks pendidikan. Aplikasi yang ramah pengguna ini menawarkan dua fitur penting: menghasilkan IBAN yang acak namun sesuai format dan memvalidasi integritas struktural IBAN yang dimasukkan oleh pengguna. Baik Anda seorang pengembang yang menguji perangkat lunak keuangan, spesialis QA yang memverifikasi aplikasi perbankan, atau pendidik yang menjelaskan standar perbankan internasional, alat ini menyediakan solusi yang langsung tanpa memerlukan konfigurasi kompleks atau integrasi pihak ketiga.
IBAN (Nomor Rekening Bank Internasional) adalah pengenal rekening yang distandarisasi yang digunakan secara internasional untuk memfasilitasi transaksi lintas batas dan mengurangi kesalahan dalam transfer uang internasional. Setiap IBAN terdiri dari kode negara, digit cek, dan nomor rekening bank dasar (BBAN) yang mengikuti format spesifik negara. Alat kami mendukung beberapa format negara dan memastikan semua IBAN yang dihasilkan lulus algoritma validasi MOD 97 yang ditentukan dalam standar ISO 13616.
Sebuah IBAN terdiri dari hingga 34 karakter alfanumerik, meskipun panjang yang tepat bervariasi menurut negara. Struktur standar mencakup:
Sebagai contoh, IBAN Jerman mengikuti struktur DE2!n8!n10!n
di mana:
DE
adalah kode negara2!n
mewakili dua digit numerik cek8!n
mewakili kode bank delapan digit10!n
mewakili nomor rekening sepuluh digitNegara yang berbeda memiliki format BBAN yang berbeda, yang menghasilkan panjang IBAN yang bervariasi:
Negara | Panjang | Struktur | Contoh |
---|---|---|---|
Jerman (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
Inggris Raya (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
Prancis (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
Spanyol (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
Italia (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Proses validasi IBAN menggunakan algoritma MOD 97 seperti yang ditentukan dalam standar ISO 7064. Berikut cara kerjanya:
Secara matematis, ini direpresentasikan sebagai:
Validator kami menerapkan algoritma ini untuk memverifikasi integritas struktural dari IBAN yang dimasukkan oleh pengguna.
Pembuat IBAN membuat IBAN yang acak namun valid untuk tujuan pengujian. Fitur utama termasuk:
Pembuat menghasilkan IBAN dengan:
Validator IBAN memeriksa integritas struktural dari IBAN yang dimasukkan oleh pengguna. Fitur utama termasuk:
Validator melakukan beberapa pemeriksaan:
Alat Pembuat dan Validator IBAN melayani berbagai tujuan di berbagai domain:
Sementara alat Pembuat dan Validator IBAN kami menawarkan pengalaman yang terstruktur untuk tujuan pengujian, ada pendekatan alternatif yang perlu dipertimbangkan:
Alat kami menjembatani kesenjangan antara alternatif-alternatif ini dengan menyediakan antarmuka yang sederhana dan dapat diakses untuk baik generasi maupun validasi tanpa memerlukan integrasi teknis atau langganan berbayar.
IBAN (Nomor Rekening Bank Internasional) adalah sistem penomoran internasional yang distandarisasi yang dikembangkan untuk mengidentifikasi rekening bank di seluruh perbatasan nasional. Ini ditetapkan oleh Organisasi Internasional untuk Standardisasi (ISO) untuk memfasilitasi transaksi internasional yang bebas kesalahan.
Pembuat IBAN membuat IBAN yang valid secara struktural yang lulus algoritma cek MOD 97 seperti yang ditentukan dalam standar ISO 13616. Meskipun IBAN yang dihasilkan valid secara matematis, mereka acak dan tidak terhubung ke rekening bank yang sebenarnya, sehingga sempurna untuk pengujian tetapi tidak untuk transaksi nyata.
Alat ini saat ini mendukung format IBAN untuk Jerman, Inggris Raya, Prancis, Spanyol, Italia, Belanda, Swiss, Austria, Belgia, dan Polandia. Ini mencakup format IBAN yang paling umum digunakan di Eropa.
Tidak. IBAN yang dibuat oleh pembuat ini valid secara struktural tetapi dihasilkan secara acak. Mereka tidak terhubung ke rekening bank yang sebenarnya dan hanya boleh digunakan untuk tujuan pengujian, pendidikan, atau demonstrasi.
Validator memeriksa beberapa aspek dari sebuah IBAN:
Tidak. Meskipun IBAN sering ditampilkan dengan spasi untuk keterbacaan (biasanya dalam grup empat karakter), spasi diabaikan selama validasi. Alat kami menangani IBAN yang diformat dan tidak diformat.
Tidak. Alat ini beroperasi sepenuhnya di browser Anda. Tidak ada data IBAN yang dikirim ke server mana pun, disimpan, atau dibagikan dengan pihak ketiga. Data Anda tetap pribadi dan aman.
Saat ini, alat hanya memvalidasi IBAN dari negara yang didukung yang terdaftar dalam dropdown. Jika Anda memerlukan validasi untuk negara tambahan, silakan beri tahu kami melalui formulir umpan balik.
IBAN mungkin gagal validasi karena beberapa alasan:
Kami menyambut umpan balik untuk meningkatkan alat. Silakan gunakan formulir umpan balik yang dapat diakses melalui tautan di bagian bawah halaman untuk melaporkan masalah atau menyarankan peningkatan.
Bagi pengembang yang tertarik untuk menerapkan validasi dan generasi IBAN dalam aplikasi mereka sendiri, berikut adalah contoh kode dalam berbagai bahasa pemrograman:
1function validateIban(iban) {
2 // Hapus spasi dan ubah menjadi huruf besar
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Periksa format dasar
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Susun ulang dan ubah huruf menjadi angka
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 // Hitung 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// Contoh penggunaan
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 (digit cek tidak valid)
32
1def validate_iban(iban):
2 # Hapus spasi dan ubah menjadi huruf besar
3 iban = iban.replace(' ', '').upper()
4
5 # Periksa format dasar
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Pindahkan 4 karakter pertama ke akhir
10 rearranged = iban[4:] + iban[:4]
11
12 # Ubah huruf menjadi angka (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 # Periksa apakah mod 97 sama dengan 1
21 return int(converted) % 97 == 1
22
23# Contoh penggunaan
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 (digit cek tidak valid)
27
1public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Hapus spasi dan ubah menjadi huruf besar
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Periksa format dasar
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Pindahkan 4 karakter pertama ke akhir
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Ubah huruf menjadi angka
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 // Hitung 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 // Tambahkan lebih banyak negara sesuai kebutuhan
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Kode negara ${countryCode} tidak didukung`);
11 }
12
13 // Hasilkan BBAN acak berdasarkan format negara
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 // Hasilkan karakter numerik
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Hasilkan karakter alfabetik
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 // Hasilkan karakter alfanumerik
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 // Hitung digit cek
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Buat IBAN awal dengan '00' sebagai digit cek
55 const initialIban = countryCode + '00' + bban;
56
57 // Susun ulang dan ubah huruf menjadi angka
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 // Hitung 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// Contoh penggunaan
77console.log(generateIban('DE')); // Menghasilkan IBAN Jerman yang valid
78console.log(generateIban('GB')); // Menghasilkan IBAN Inggris Raya yang valid
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 # Tambahkan lebih banyak negara sesuai kebutuhan
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Kode negara {country_code} tidak didukung")
14
15 # Hasilkan BBAN acak berdasarkan format negara
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': # Numerik
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alfabetik
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alfanumerik
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Hitung digit cek
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 # Buat string untuk perhitungan digit cek
40 check_string = bban + country_code + '00'
41
42 # Ubah huruf menjadi angka (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 # Hitung 98 minus mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Contoh penggunaan
57print(generate_iban('DE')) # Menghasilkan IBAN Jerman yang valid
58print(generate_iban('GB')) # Menghasilkan IBAN Inggris Raya yang valid
59
Alat Pembuat dan Validator IBAN menyediakan solusi yang sederhana namun kuat untuk tujuan pengujian dan pendidikan terkait pengenal perbankan internasional. Dengan menawarkan kemampuan baik untuk generasi maupun validasi dalam antarmuka yang ramah pengguna, alat ini menghilangkan kebutuhan akan konfigurasi kompleks atau integrasi pihak ketiga.
Baik Anda mengembangkan aplikasi keuangan, menguji sistem pembayaran, atau belajar tentang standar perbankan internasional, alat ini menawarkan cara yang langsung untuk bekerja dengan IBAN. Validasi komprehensif memastikan bahwa semua IBAN yang dihasilkan secara struktural sehat dan sesuai dengan standar internasional.
Cobalah menghasilkan atau memvalidasi IBAN sekarang untuk mengalami kemampuan alat ini secara langsung!
Temukan lebih banyak alat yang mungkin berguna untuk alur kerja Anda