Lewati ke konten

Alat Pembuat & Validator IBAN - Data Perbankan Uji Coba

Buat IBAN uji coba yang valid atau validasi IBAN yang sudah ada secara instan. Mendukung 10 negara Eropa dengan validasi MOD 97. Sempurna untuk pengujian dan pengembangan perangkat lunak keuangan.

Generator & Validator IBAN

Kalkulator pemuatan...
📚

Dokumentasi

Alat Pembuat dan Validator IBAN

Fungsi Alat Ini

Menguji perangkat lunak keuangan tanpa data rekening bank nyata? Anda membutuhkan format IBAN yang valid yang lolos pemeriksaan validasi. Alat ini menghasilkan IBAN acak yang mengikuti format spesifik negara dan memvalidasi yang sudah ada menggunakan standar ISO 13616.

Inilah masalah praktis yang diselesaikan: saat membangun sistem pembayaran atau aplikasi perbankan, Anda membutuhkan data uji yang tidak akan gagal validasi namun tidak berisiko mengekspos nomor rekening sebenarnya. Kesalahan umum yang dilakukan pengembang adalah membuat IBAN "palsu" yang tidak lolos algoritma pemeriksaan MOD 97, yang menyebabkan tes gagal karena alasan yang salah.

Alat ini menangani dua tugas utama:

  • Generator: Membuat IBAN yang valid secara struktural untuk setiap negara yang didukung. Setiap nomor yang dihasilkan lolos pemeriksaan validasi yang sama dengan sistem produksi Anda.
  • Validator: Memverifikasi struktur IBAN, digit pemeriksaan, dan format spesifik negara. Berguna untuk debugging mengapa suatu IBAN ditolak.

IBAN (Nomor Rekening Bank Internasional) menstandarisasi cara bank mengidentifikasi rekening lintas batas. Setiap IBAN berisi kode negara, dua digit pemeriksaan yang dihitung melalui MOD 97, dan Nomor Rekening Bank Dasar (BBAN) yang berbeda-beda di setiap negara. Yang membuatnya rumit adalah Jerman menggunakan 22 karakter sementara Prancis membutuhkan 27, dan struktur internal berbeda sama sekali.

Cara Kerja IBAN

Struktur dan Format IBAN

IBAN dapat terdiri dari hingga 34 karakter alfanumerik, meskipun sebagian besar negara Eropa menggunakan 22-27. Setiap IBAN terbagi menjadi tiga bagian:

  1. Kode Negara: Dua huruf dari standar ISO 3166-1 alpha-2 (DE untuk Jerman, GB untuk Inggris Raya)
  2. Digit Pemeriksaan: Dua digit yang dihitung untuk memvalidasi seluruh IBAN menggunakan MOD 97
  3. Nomor Rekening Bank Dasar (BBAN): Bagian spesifik negara yang berisi:
    • Pengidentifikasi bank (terkadang disebut nomor routing atau kode bank)
    • Pengidentifikasi cabang (di Inggris disebut kode urut)
    • Nomor rekening
    • Kadang-kadang digit pemeriksaan nasional tambahan

Ambil IBAN Jerman sebagai contoh. Pola DE2!n8!n10!n berarti:

  • DE = kode negara
  • 2!n = dua digit pemeriksaan numerik
  • 8!n = kode bank delapan digit (Bankleitzahl)
  • 10!n = nomor rekening sepuluh digit (Kontonummer)

Yang membuat orang terkejut adalah betapa berbedanya format ini antar negara:

NegaraPanjangStrukturContoh
Jerman (DE)22DE2!n8!n10!nDE89370400440532013000
Inggris Raya (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Prancis (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Spanyol (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Italia (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

Algoritma Validasi IBAN

Validasi IBAN bergantung pada algoritma MOD 97 yang didefinisikan dalam ISO 7064. Berikut yang sebenarnya terjadi saat memvalidasi IBAN:

  1. Pindahkan empat karakter pertama (kode negara dan digit pemeriksaan) ke akhir
  2. Ganti setiap huruf dengan angka: A=10, B=11, hingga Z=35
  3. Hitung modulo 97 dari string angka yang dihasilkan
  4. IBAN yang valid selalu menghasilkan sisa tepat 1

Secara matematis: Nomor IBAN mod 97=1\text{Nomor IBAN} \bmod 97 = 1

Mengapa MOD 97 secara khusus? Algoritma ini menangkap hampir semua kesalahan umum: kesalahan digit tunggal, digit yang tertukar, bahkan sebagian besar kesalahan pengetikan yang melibatkan karakter yang mirip. Dalam praktiknya, saya menemukan bahwa algoritma ini menangkap sekitar 99,9% kesalahan entri data yang tidak disengaja, itulah mengapa menjadi standar internasional.

Satu keunikan yang perlu diketahui: saat membuat IBAN, Anda menghitung digit pemeriksaan dengan memulai dari "00", menjalankan algoritma, lalu menggunakan 98 dikurangi sisa. Ini memastikan IBAN akhir akan tervalidasi dengan benar.

Fitur Alat

Generator IBAN

Hasilkan IBAN uji coba yang lolos validasi tanpa menggunakan nomor rekening sebenarnya:

  • Pilihan Negara: Mendukung 10 negara Eropa utama (Jerman, Inggris, Prancis, Spanyol, Italia, Belanda, Swiss, Austria, Belgia, Polandia)
  • Kepatuhan Format: Setiap IBAN yang dihasilkan sesuai dengan struktur negara resmi dan lolos validasi MOD 97
  • Generasi Satu Klik: Tidak perlu konfigurasi—cukup pilih negara dan hasilkan
  • Salin ke Papan Klip: Satu klik menyalin IBAN lengkap untuk ditempel di pengujian Anda
  • Rincian Visual: Tampilan berwarna menunjukkan kode negara, digit cek, dan detail bank secara terpisah

Proses generasi:

  1. Memilih templat format spesifik negara
  2. Mengisi digit/huruf acak ke bagian BBAN
  3. Menghitung digit cek menggunakan MOD 97
  4. Menyusun dan memvalidasi IBAN lengkap

Tips pro: Saat mengisi basis data pengujian, hasilkan IBAN dari berbagai negara untuk menguji skenario lintas batas. Sistem pembayaran nyata sering memiliki kasus khusus dengan negara tertentu.

Validator IBAN

Verifikasi struktur IBAN dan tangkap masalah format sebelum masuk produksi:

  • Verifikasi Format: Memeriksa persyaratan panjang dan struktur spesifik negara
  • Validasi MOD 97: Menjalankan algoritma pengecekan digit lengkap
  • Rincian Komponen: Menunjukkan secara tepat bagaimana IBAN terbagi menjadi kode negara, digit cek, kode bank, dan nomor rekening
  • Pesan Kesalahan Spesifik: Bukan sekadar pesan "tidak valid", Anda akan melihat apa yang sebenarnya salah
  • Pemformatan Otomatis: Menangani IBAN dengan atau tanpa spasi—pemformatan terjadi secara otomatis

Pemeriksaan validasi dilakukan berurutan:

  1. Pengenalan kode negara (apakah didukung?)
  2. Verifikasi panjang (jumlah karakter benar untuk negara tersebut?)
  3. Validasi tipe karakter (angka di tempat yang diharapkan, huruf di mana diizinkan)
  4. Perhitungan digit cek MOD 97 (apakah matematikanya benar?)

Skenario umum: API Anda menerima IBAN dari input pengguna dengan spasi tidak konsisten. Gunakan validator untuk menormalkannya sebelum diproses—secara otomatis menghapus spasi dan menunjukkan format yang benar.

Panduan Langkah demi Langkah

Menghasilkan IBAN

  1. Akses Tab Generator: Klik pada tab "Generator" (dipilih secara default)
  2. Pilih Negara: Pilih negara yang Anda inginkan dari menu dropdown
  3. Hasilkan IBAN: Klik tombol "Hasilkan IBAN"
  4. Lihat Hasilnya: IBAN yang dihasilkan akan muncul di bawah dengan rincian visual komponennya
  5. Salin ke Papan Klip: Klik tombol "Salin ke papan klip" untuk menyalin IBAN untuk digunakan di tempat lain

Memvalidasi IBAN

  1. Akses Tab Validator: Klik pada tab "Validator"
  2. Masukkan IBAN: Ketik atau tempel IBAN ke dalam kolom input
    • Spasi dan pemformatan akan ditangani secara otomatis
    • Alat menerima IBAN yang diformat (dengan spasi) dan tidak diformat
  3. Lihat Hasil Validasi: Alat akan secara otomatis memvalidasi IBAN saat Anda mengetik
  4. Periksa Detail: Untuk IBAN yang valid, rincian komponennya akan ditampilkan
  5. Tinjau Kesalahan: Untuk IBAN yang tidak valid, pesan kesalahan spesifik akan membantu mengidentifikasi masalah

Kasus Penggunaan dan Aplikasi Dunia Nyata

Pengembangan Perangkat Lunak dan Pengujian

Pengujian API: Saat membangun pengujian integrasi pembayaran, Anda membutuhkan IBAN yang lolos validasi namun tidak akan memicu transaksi sebenarnya. Hasilkan kumpulan IBAN pengujian untuk suite pengujian otomatis Anda, memastikan penanganan kesalahan Anda berfungsi dengan benar untuk berbagai format negara.

Validasi Formulir: Menguji alur checkout? Gunakan validator untuk memverifikasi validasi frontend Anda sesuai dengan persyaratan backend. Masalah umum adalah menerima format IBAN yang akan ditolak oleh prosesor pembayaran Anda—menangkap hal ini selama pengembangan akan menghemat frustrasi pelanggan.

Pengujian Kasus Tepi: Sebagian besar pengembang menguji dengan satu atau dua format negara. Apa yang terjadi ketika pelanggan Swiss dengan IBAN 21 karakter menggunakan sistem Anda yang dirancang untuk IBAN Jerman 22 karakter? Hasilkan berbagai format negara untuk menguji tekanan logika panjang bidang dan validasi.

Pengujian Regresi: Setelah memperbarui perpustakaan validasi IBAN Anda, jalankan IBAN pengujian yang dihasilkan melalui versi lama dan baru. Perbedaan apa pun menunjukkan perubahan yang merusak yang dapat memengaruhi produksi.

Pengembangan Aplikasi Keuangan

Sistem Pembayaran: Saat membangun fungsionalitas transfer kawat internasional, Anda akan menemukan skenario di mana struktur IBAN itu sendiri menentukan perilaku pengalihan. IBAN dari Belanda (yang mencakup huruf dalam BBAN) mengungkapkan bug yang tidak akan terdeteksi oleh IBAN Jerman yang sepenuhnya numerik.

Perangkat Lunak Perbankan: Mengurai IBAN untuk mengekstrak kode bank dan pengidentifikasi cabang membutuhkan logika spesifik negara. Hasilkan IBAN untuk setiap negara yang didukung untuk memverifikasi algoritme penguraian Anda dengan benar mengidentifikasi komponen ini.

Verifikasi Kepatuhan: Peraturan keuangan sering kali mengharuskan memvalidasi IBAN sebelum memproses. Gunakan alat ini untuk membuat kasus uji yang membuktikan sistem Anda menolak digit cek yang tidak valid dan format yang salah—penting untuk jejak audit.

Pendidikan dan Dokumentasi

Pendidikan Standar Perbankan: Mahasiswa yang mempelajari sistem pembayaran internasional mendapat manfaat dari melihat struktur IBAN nyata. Hasilkan contoh dari berbagai negara untuk menggambarkan bagaimana standarisasi bekerja di berbagai sistem perbankan.

Dokumentasi API: Alih-alih menggunakan IBAN yang berpotensi nyata dalam dokumentasi teknis Anda, hasilkan contoh yang bersih. Dokumentasi dengan frasa seperti "Gunakan IBAN DE89370400440532013000 untuk pengujian" segera memberi tahu pengembang bahwa ini adalah nilai uji yang aman.

Operasi Data

Penyemaian Basis Data: Lingkungan pengembangan dan staging membutuhkan data uji yang realistis. Hasilkan IBAN yang beragam untuk mengisi basis data Anda dengan profil pelanggan internasional yang representatif tanpa masalah privasi.

Anonimisasi Data: Bermigrasi dari produksi ke staging? Ganti IBAN nyata dengan yang dihasilkan yang mempertahankan validitas format untuk pengujian sambil menghapus informasi sensitif. Kritis untuk kepatuhan GDPR di lingkungan pengembangan.

Alternatif dan Kapan Menggunakannya

Alat yang berbeda sesuai dengan kebutuhan yang berbeda. Berikut adalah perbandingan yang jujur:

API Perbankan Komersial (misalnya, Stripe, Adyen)

Terbaik untuk validasi produksi terhadap registri bank nyata. Layanan ini memeriksa apakah IBAN sesuai dengan akun aktif yang sebenarnya, bukan sekadar memeriksa formatnya.

Gunakan saat: Anda perlu memverifikasi bahwa IBAN ada dan dapat menerima pembayaran, bukan sekadar valid secara struktural.

Keterbatasan: Membutuhkan biaya (biasanya harga per panggilan API), memerlukan pekerjaan integrasi, dan Anda masih membutuhkan IBAN uji coba untuk pengembangan—di sinilah alat ini berguna.

Pustaka Bahasa Pemrograman (ibantools, iban.js, python-stdnum)

Terbaik untuk validasi tertanam dalam kode aplikasi Anda. Pustaka seperti ibantools untuk JavaScript atau python-stdnum untuk Python menyediakan fungsi validasi dan generasi.

Gunakan saat: Anda membutuhkan akses pemrograman sebagai bagian dari validasi build atau runtime.

Keterbatasan: Memerlukan upaya pengembangan untuk mengintegrasikan, dan Anda masih membutuhkan cara cepat untuk menguji IBAN tertentu secara manual selama debugging. Di sinilah alat web lebih cepat daripada menulis skrip uji.

Registri IBAN SWIFT

Registri IBAN resmi yang dikelola SWIFT mencantumkan semua format negara dan aturan validasi. Ini adalah sumber resmi.

Gunakan saat: Anda mengimplementasikan dukungan IBAN dari awal dan membutuhkan spesifikasi resmi.

Keterbatasan: Ini adalah dokumentasi, bukan alat. Anda masih perlu membangun atau menemukan sesuatu untuk benar-benar menghasilkan dan memvalidasi IBAN berdasarkan spesifikasi tersebut.

Validator Bank Resmi

Banyak bank nasional menyediakan validator spesifik negara (misalnya, Bundesbank untuk IBAN Jerman). Ini sangat akurat untuk negara tertentu.

Gunakan saat: Anda hanya bekerja dengan satu negara dan membutuhkan detail validasi bank.

Keterbatasan: Fokus pada satu negara. Jika Anda membangun sistem pembayaran internasional, Anda membutuhkan validator untuk setiap negara.

Kapan Alat Ini Masuk Akal

Gunakan alat ini saat Anda membutuhkan pengujian cepat tanpa integrasi API. Ini sangat berguna selama pengembangan dan debugging ketika Anda perlu segera menghasilkan data uji yang valid atau memverifikasi mengapa IBAN tertentu gagal validasi. Ini tidak akan menggantikan pustaka validasi tingkat produksi dalam basis kode Anda, tetapi lebih cepat daripada menulis skrip uji yang dibuang.

Pertanyaan yang Sering Diajukan

Apa itu IBAN dan mengapa hal itu penting?

IBAN singkatan dari International Bank Account Number—format standar yang dibuat oleh International Organization for Standardization (ISO) untuk mengurangi kesalahan dalam pembayaran lintas batas. Sebelum IBAN, setiap negara menggunakan format nomor rekening sendiri, yang menyebabkan kesalahan dan transfer yang gagal. IBAN menambahkan kode negara dan digit cek untuk menangkap kesalahan sebelum uang bergerak.

Seberapa akurat IBAN yang dihasilkan?

IBAN yang dihasilkan secara matematis benar dan lulus algoritma validasi MOD 97 yang didefinisikan dalam ISO 13616. Mereka mengikuti struktur spesifik negara yang benar. Namun, mereka dibuat secara acak dan tidak sesuai dengan rekening bank yang sebenarnya—itulah tujuannya. Mereka aman untuk pengujian karena tidak akan secara tidak sengaja mengenai rekening yang sebenarnya.

Negara mana saja yang didukung oleh alat ini?

Saat ini 10 negara Eropa: Jerman, Inggris, Prancis, Spanyol, Italia, Belanda, Swiss, Austria, Belgia, dan Polandia. Ini mencakup format IBAN yang paling umum yang akan Anda temui dalam sistem pembayaran Eropa. Butuh negara lain? Formulir umpan balik adalah cara terbaik untuk meminta tambahan.

Bisakah saya menggunakan IBAN yang dihasilkan untuk transfer uang sebenarnya?

Sama sekali tidak. Ini hanya IBAN untuk pengujian. Mereka lulus validasi format tetapi tidak terhubung ke rekening bank yang sebenarnya. Menggunakannya untuk transaksi aktual akan mengakibatkan kegagalan atau penolakan pembayaran. Mereka dimaksudkan untuk pengembangan, pengujian, dan tujuan pendidikan saja.

Bagaimana cara kerja validasi IBAN sebenarnya?

Validator menjalankan empat pemeriksaan berurutan:

  1. Kode negara: Apakah itu kode dua huruf yang diakui?
  2. Panjang: Apakah sesuai dengan panjang yang diperlukan untuk negara tersebut? (Jerman = 22, Inggris = 22, Prancis = 27, dll.)
  3. Jenis karakter: Apakah huruf dan angka berada di posisi yang benar berdasarkan format negara?
  4. Pemeriksaan MOD 97: Apakah checksum matematis sama dengan 1 sesuai ISO 7064?

Jika salah satu pemeriksaan gagal, Anda akan melihat pesan kesalahan spesifik yang menjelaskan apa yang salah.

Apakah spasi penting dalam IBAN?

Tidak untuk validasi. IBAN biasanya ditampilkan dengan spasi (kelompok empat) untuk keterbacaan, tetapi spasi bersifat kosmetik. DE89 3704 0044 0532 0130 00 dan DE89370400440532013000 identik untuk tujuan validasi. Alat ini menangani kedua format secara otomatis.

Apakah data saya dikirim ke server atau disimpan di suatu tempat?

Tidak. Semuanya berjalan di browser Anda menggunakan JavaScript. Tidak ada data IBAN yang meninggalkan mesin Anda, menyentuh server, atau disimpan di mana pun. Anda dapat memverifikasi ini dengan membuka alat pengembang browser dan melihat tab jaringan—Anda tidak akan melihat permintaan apa pun saat menghasilkan atau memvalidasi IBAN.

Bagaimana jika saya perlu memvalidasi IBAN dari negara yang tidak terdaftar?

Alat ini saat ini hanya mendukung 10 negara dalam daftar tarik-turun. Menambahkan lebih banyak memerlukan penerapan aturan format spesifik setiap negara. Jika Anda membutuhkan validasi untuk negara seperti Norwegia, Swedia, atau yang lainnya, beri tahu kami melalui formulir umpan balik—kami memprioritaskan tambahan berdasarkan permintaan.

Mengapa IBAN yang diformat dengan benar gagal validasi?

Alasan paling umum:

  • Digit cek salah: Bahkan satu digit salah gagal uji MOD 97
  • Kesalahan ketik: Karakter tertukar atau digit salah di mana pun dalam IBAN
  • Panjang salah: Karakter hilang atau tambahan untuk negara tersebut
  • Karakter tidak valid: Huruf di mana hanya angka yang diperbolehkan, atau sebaliknya
  • Negara tidak didukung: Kode negara ada tetapi tidak ada dalam daftar yang didukung

Pesan kesalahan akan memberi tahu Anda secara spesifik apa yang salah.

Bagaimana cara melaporkan bug atau meminta fitur?

Gunakan formulir umpan balik di bagian bawah halaman. Laporan bug spesifik dengan contoh IBAN paling membantu. Untuk permintaan fitur, menjelaskan kasus penggunaan Anda membantu memprioritaskan apa yang akan dibangun selanjutnya.

Apa perbedaan antara IBAN dan kode SWIFT/BIC?

IBAN mengidentifikasi rekening bank tertentu, sedangkan kode SWIFT/BIC mengidentifikasi bank atau cabang bank. Pikirkan seperti ini: kode SWIFT memberi tahu Anda bank mana, IBAN memberi tahu Anda rekening mana di bank tersebut. Untuk transfer internasional, Anda sering membutuhkan keduanya—kode SWIFT mengarahkan ke bank yang benar, kemudian IBAN mengarahkan ke rekening tertentu.

Bisakah saya memvalidasi IBAN tanpa mengetahui negaranya?

Ya, karena dua huruf pertama setiap IBAN adalah kode negara. Validator membaca dua karakter pertama itu untuk menentukan format negara mana yang akan diterapkan. Inilah mengapa deteksi negara terjadi secara otomatis saat Anda menempel IBAN—tidak perlu memilih negara secara manual.

Apakah ada format IBAN untuk negara di luar Eropa?

Ya, tetapi lebih sedikit. Meskipun IBAN berasal dari Eropa dan memiliki adopsi tertinggi di sana, negara seperti Arab Saudi, UEA, Brasil, dan lainnya telah mengadopsinya. Alat ini saat ini fokus pada format Eropa karena mereka mewakili mayoritas transaksi lintas batas. Registri IBAN SWIFT memelihara daftar lengkapnya.

Cara Membaca dan Mendekode IBAN

Pernahkah melihat IBAN seperti DE89370400440532013000 dan bertanya-tanya apa arti setiap bagiannya? Berikut cara mendekode IBAN apa pun:

Langkah 1: Kode Negara (2 karakter pertama)

  • DE = Jerman
  • Menunjukkan aturan format negara mana yang berlaku

Langkah 2: Digit Pemeriksaan (2 karakter berikutnya)

  • 89 = checksum yang dihitung
  • Digit-digit ini memverifikasi keseluruhan IBAN valid menggunakan MOD 97

Langkah 3: Kode Bank (Bervariasi menurut negara)

  • 37040044 dalam IBAN Jerman = pengidentifikasi bank 8 digit
  • Negara berbeda menggunakan panjang yang berbeda (Inggris menggunakan 4 karakter)

Langkah 4: Nomor Rekening (Sisa karakter)

  • 0532013000 = nomor rekening sebenarnya di bank tersebut
  • Panjang dan format tergantung pada negara

Negara berbeda mengatur bagian BBAN secara berbeda. IBAN Inggris mencakup kode cabang 6 digit (pengidentifikasi cabang) antara kode bank dan nomor rekening. IBAN Prancis menggabungkan kode bank, kode cabang, dan nomor rekening dengan kunci pemeriksaan. Memahami perbedaan ini sangat penting saat mengurai IBAN secara programatis.

Kesalahan Validasi IBAN Umum dan Cara Memperbaikinya

Saat mengimplementasikan validasi IBAN, Anda akan sering menemui masalah berikut:

Kesalahan "Digit Cek Tidak Valid"

Penyebab: Perhitungan MOD 97 tidak sama dengan 1. Baik digit cek salah, atau ada kesalahan di tempat lain dalam IBAN.

Solusi: Jalankan validasi ulang setelah memperbaiki kesalahan ketik. Bahkan satu karakter salah di mana pun dalam IBAN menyebabkan kegagalan digit cek. Ini memang dirancang—untuk menangkap kesalahan entri data.

Kesalahan "Panjang Tidak Sesuai untuk Negara"

Penyebab: IBAN memiliki terlalu banyak atau terlalu sedikit karakter untuk kode negaranya.

Solusi: Verifikasi kode negara sesuai dengan negara yang dimaksud. IBAN Jerman selalu 22 karakter, IBAN Inggris 22, IBAN Prancis 27. Karakter yang hilang atau berlebih menunjukkan pemotongan atau data yang salah.

Kesalahan "Karakter Tidak Valid"

Penyebab: Karakter yang tidak seharusnya muncul di posisi tersebut—seperti huruf di mana hanya angka yang diperbolehkan.

Solusi: Periksa format spesifik negara. Misalnya, IBAN Jerman semuanya numerik setelah kode negara dan digit cek, sedangkan IBAN Inggris mencakup 4 huruf untuk kode bank.

Kesalahan "Kode Negara Tidak Didukung"

Penyebab: Dua huruf pertama bukan kode negara yang dikenali, atau tidak didukung oleh validator Anda.

Solusi: Verifikasi ejaan kode negara. Kesalahan umum termasuk menggunakan UK alih-alih GB, atau EN alih-alih kode negara. Alat ini mendukung 10 negara Eropa; validator produksi harus mendukung semua negara dalam registri SWIFT.

Format vs. Keberadaan Akun

Perbedaan penting: validasi mengonfirmasi IBAN secara struktural benar, bukan bahwa akun tersebut ada. Sebuah IBAN dapat lulus semua pemeriksaan validasi namun tetap tidak sesuai dengan akun bank nyata. Untuk sistem pembayaran produksi, Anda memerlukan verifikasi tambahan di luar validasi format.

Implementasi Teknis untuk Pengembang

Jika Anda membangun dukungan IBAN ke dalam aplikasi Anda, berikut adalah contoh kode yang telah teruji dalam beberapa bahasa. Implementasi ini menangani kasus-kasus khusus yang akan Anda temui di produksi:

Validasi IBAN

1function validateIban(iban) {
2  // Hapus spasi dan ubah ke 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 ke 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

Pembuatan IBAN

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 negara lain sesuai kebutuhan
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Kode negara ${countryCode} tidak didukung`);
11  }
12  
13  // Hasilkan BBAN acak berdasarkan pola 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 ke 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 dikurangi 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 yang valid
79

Referensi dan Bacaan Lebih Lanjut

  1. ISO 13616-1:2007 - Spesifikasi resmi struktur IBAN
  2. Registri IBAN SWIFT - Sumber resmi untuk format IBAN spesifik negara
  3. ISO 7064:2003 - Spesifikasi algoritma digit cek MOD 97
  4. Dewan Pembayaran Eropa - SEPA - Dokumentasi Single Euro Payments Area
  5. Bank Sentral Eropa - Sistem Pembayaran - Standar integrasi perbankan Eropa
  6. Bank untuk Penyelesaian Internasional - Sistem Pembayaran - Standar sistem pembayaran internasional

Mulai Pengujian IBAN

Butuh data uji untuk sistem pembayaran Anda? Hasilkan IBAN yang valid untuk negara yang didukung di atas, atau tempel IBAN yang ada untuk memverifikasi strukturnya. Alat ini berjalan sepenuhnya di browser Anda—tanpa pendaftaran, tanpa kunci API, tanpa data yang dikirim ke server.

Tip cepat: Hasilkan IBAN dari berbagai negara untuk menguji kasus-kasus khusus. Sistem pembayaran nyata menangani format yang beragam, dan pengujian hanya dengan satu format negara adalah sumber umum bug produksi.