Nomor Kartu Kredit Dummy untuk Testing
Generate nomor kartu dummy valid Luhn, cek nomor kartu, dan salin nomor uji resmi payment gateway.
Generator nomor kartu dummy
Untuk menguji validasi form, deteksi jenis kartu, format input, dan data fixture. Semua dibuat di browser.
Cek nomor kartu (validator Luhn)
Tempel nomor untuk melihat jaringannya, apakah lolos Luhn, dan apakah termasuk nomor uji resmi. Tidak ada yang dikirim ke server.
Nomor kartu uji resmi Midtrans, Xendit, dan Stripe
Untuk menguji alur pembayaran sampai selesai, pakai nomor dari penyedia sendiri di mode sandbox/test. Klik nomor untuk menyalin. Diperiksa terhadap dokumentasi resmi pada 21 Oktober 2026.
| Jaringan | Nomor | Hasil yang disimulasikan |
|---|---|---|
| Umum (3DS) | ||
| Visa | Diterima, autentikasi penuh | |
| Visa | Ditolak bank, autentikasi penuh | |
| Visa | Diterima, attempted authentication | |
| Visa | Ditolak FDS (fraud detection) | |
| Visa | Ditolak bank, attempted authentication | |
| Mastercard | Diterima, autentikasi penuh | |
| Mastercard | Ditolak bank, autentikasi penuh | |
| Mastercard | Diterima, attempted authentication | |
| Mastercard | Ditolak FDS (fraud detection) | |
| Mastercard | Ditolak bank, attempted authentication | |
| JCB | Diterima, autentikasi penuh | |
| JCB | Ditolak bank, autentikasi penuh | |
| American Express | Diterima, autentikasi penuh | |
| American Express | Ditolak bank, autentikasi penuh | |
| UnionPay | Diterima, autentikasi penuh | |
| 3DS 2 | ||
| Visa | Diterima, frictionless (tanpa OTP) | |
| Visa | Diterima, challenge (minta OTP) | |
| Visa | Ditolak, challenge | |
| Mastercard | Diterima, frictionless (tanpa OTP) | |
| Mastercard | Diterima, challenge (minta OTP) | |
| Mastercard | Ditolak, challenge | |
Sumber: dokumentasi resmi Midtrans. Penyedia bisa mengubah daftarnya sewaktu-waktu, jadi cocokkan lagi kalau hasil tesnya tidak sesuai.
| Jaringan | Nomor | Hasil yang disimulasikan |
|---|---|---|
| Visa | Berhasil, 3DS frictionless | |
| Visa | Berhasil kalau OTP benar, 3DS challenge | |
| Mastercard | Berhasil, 3DS frictionless | |
| Mastercard | Berhasil kalau OTP benar, 3DS challenge | |
| JCB | 3DS challenge | |
| American Express | Berhasil, 3DS frictionless (CVN 4 digit) |
Sumber: dokumentasi resmi Xendit. Penyedia bisa mengubah daftarnya sewaktu-waktu, jadi cocokkan lagi kalau hasil tesnya tidak sesuai.
| Jaringan | Nomor | Hasil yang disimulasikan |
|---|---|---|
| Berhasil | ||
| Visa | Berhasil | |
| Visa (debit) | Berhasil | |
| Mastercard | Berhasil | |
| Mastercard (2-series) | Berhasil | |
| American Express | Berhasil | |
| Discover | Berhasil | |
| Diners Club | Berhasil | |
| JCB | Berhasil | |
| UnionPay | Berhasil | |
| Ditolak | ||
| Visa | Ditolak umum (generic_decline) | |
| Visa | Saldo tidak cukup (insufficient_funds) | |
| Visa | Kartu hilang (lost_card) | |
| Visa | Kartu kedaluwarsa (expired_card) | |
| Visa | CVC salah (incorrect_cvc) | |
| 3D Secure | ||
| Visa | 3DS wajib diselesaikan agar berhasil | |
Sumber: dokumentasi resmi Stripe. Penyedia bisa mengubah daftarnya sewaktu-waktu, jadi cocokkan lagi kalau hasil tesnya tidak sesuai.
Apa itu nomor kartu kredit dummy?
Nomor kartu kredit dummy adalah nomor yang formatnya benar dan lolos algoritma Luhn, tapi tidak terdaftar di bank mana pun. Pengembang memakainya untuk menguji formulir pembayaran: validasi input, deteksi jenis kartu dari digit awal, format tampilan, dan pesan error. Nomor ini tidak punya dana dan pasti ditolak kalau dipakai bertransaksi.
Halaman ini punya tiga alat: generator untuk tujuh jaringan kartu lengkap dengan CVV, kedaluwarsa, dan ekspor JSON/CSV; validator Luhn yang memperlihatkan langkah hitungnya; dan daftar nomor uji resmi Midtrans, Xendit, dan Stripe untuk menguji alur pembayaran sampai selesai di sandbox.
Nomor dummy atau nomor uji resmi: pakai yang mana?
| Yang mau diuji | Pakai | Kenapa |
|---|---|---|
| Validasi format dan Luhn di form, sebelum dikirim ke server | Nomor dummy dari generator | Cukup lolos format; jumlah dan variasinya bebas |
| Deteksi jenis kartu dan ikon Visa/Mastercard/JCB | Nomor dummy, mode Campur | Mencakup semua rentang awalan, termasuk Mastercard 2-series |
| Data fixture untuk unit test atau seed database | Nomor dummy, ekspor JSON/CSV | Tidak ada data kartu asli di repository |
| Pembayaran berhasil, ditolak, 3DS/OTP di sandbox | Nomor uji resmi gateway | Gateway hanya mengenali nomor dari daftarnya sendiri; nomor dummy akan ditolak |
| Pembayaran di Production | Kartu asli milikmu sendiri | Nomor uji dan dummy tidak berlaku di Production |
Cara kerja algoritma Luhn, dengan contoh
Algoritma Luhn (mod 10) adalah rumus checksum untuk menangkap salah ketik. Satu digit salah, atau dua digit bersebelahan yang tertukar, hampir selalu membuat nomor gagal. Cara menghitungnya, misalnya untuk 4539 1488 0343 6467:
- Mulai dari digit kedua dari kanan, kalikan 2 setiap digit secara selang-seling: 6, 6, 4, 0, 8, 1, 3, 4 berturut-turut menjadi 12, 12, 8, 0, 16, 2, 6, 8.
- Hasil yang lebih dari 9 dikurangi 9: 12 menjadi 3 dan 16 menjadi 7.
- Jumlahkan semuanya bersama digit yang tidak dikali: (3 + 3 + 8 + 0 + 7 + 2 + 6 + 8) + (7 + 4 + 3 + 3 + 8 + 4 + 9 + 5) = 37 + 43 = 80.
- 80 habis dibagi 10, jadi nomor ini lolos. Kalau tidak habis dibagi, nomornya pasti salah ketik.
Generator di atas bekerja terbalik: digit-digit awal dibuat acak, lalu digit terakhir (check digit) dihitung supaya totalnya habis dibagi 10. Validator di atas memperlihatkan langkah ini untuk nomor yang kamu tempel.
Lolos Luhn tidak berarti kartunya ada. Luhn hanya mengecek susunan digit; keberadaan kartu, saldo, dan status hanya bisa dicek bank penerbit saat otorisasi.
Awalan (IIN) dan panjang nomor tiap jaringan kartu
Enam digit pertama nomor kartu disebut IIN atau BIN. Digit-digit awalnya menentukan jaringan kartu, dan rentang inilah yang dipakai generator serta pendeteksi jenis kartu di halaman ini:
| Jaringan | Diawali | Panjang | Kode keamanan |
|---|---|---|---|
| Visa | 4 | 16 (ada juga 13 dan 19) | 3 digit |
| Mastercard | 51–55 dan 2221–2720 | 16 | 3 digit |
| American Express | 34, 37 | 15 | 4 digit |
| JCB | 3528–3589 | 16 (sampai 19) | 3 digit |
| Discover | 6011, 644–649, 65 | 16 (sampai 19) | 3 digit |
| Diners Club | 300–305, 36, 38, 39 | 14 (ada juga 16) | 3 digit |
| UnionPay | 62 | 16 (sampai 19) | 3 digit |
Di form pembayaran, jangan membatasi panjang nomor hanya 16 digit. Amex memakai 15 digit dan Diners 14, sedangkan Visa, JCB, dan UnionPay bisa sampai 19. Mastercard yang diawali 2 (2221–2720) juga sering terlewat oleh validasi lama yang hanya mengecek awalan 5.
Menyimpan data kartu di aplikasi dengan aman
- Jangan pernah menyimpan nomor kartu asli di database, log, atau file test. Biarkan payment gateway yang menyimpan, lalu pakai token yang mereka berikan.
- CVV tidak boleh disimpan sama sekali, bahkan terenkripsi. Ini salah satu aturan dasar PCI DSS.
- Tampilkan nomor yang disamarkan, misalnya
•••• •••• •••• 4242. Empat digit terakhir dan jaringan kartu sudah cukup untuk pengguna mengenali kartunya. - Bersihkan log request. Pastikan body request ke endpoint pembayaran tidak tercatat utuh di log server atau alat monitoring.
- Pakai nomor dummy atau nomor uji di fixture dan seed database, dan beri nama yang jelas, misalnya
kartu-dummy-testing.json, supaya tidak tertukar dengan data produksi.
Pertanyaan Umum (FAQ)
Tidak. Nomor dummy hanya lolos cek format dan Luhn; tidak terdaftar di jaringan penerbit mana pun, jadi setiap upaya transaksi atau verifikasi kartu pasti ditolak. Memakai nomor kartu untuk menipu adalah tindak pidana.
Karena sandbox payment gateway hanya mengenali nomor dari daftar uji mereka sendiri. Untuk menguji alur pembayaran, pakai nomor di tabel nomor kartu uji resmi di atas, misalnya 4811 1111 1111 1114 untuk transaksi berhasil di Midtrans.
Menurut dokumentasi Midtrans, CVV-nya 123 dan OTP/3DS-nya 112233, dengan bulan kedaluwarsa apa saja dan tahun di masa depan. Nomor uji ini hanya berlaku di Sandbox.
Rumus checksum mod 10 untuk mendeteksi salah ketik pada nomor kartu. Form pembayaran memakainya sebagai penyaring awal sebelum data dikirim ke bank, karena itu nomor uji perlu lolos Luhn supaya alur validasinya bisa diuji. Langkah hitungnya ada di bagian Cara kerja algoritma Luhn.
Digitnya acak, jadi secara teori bisa beririsan dengan rentang yang dipakai bank. Karena itu nomor ini hanya untuk pengujian teknis di aplikasimu sendiri, tidak untuk dimasukkan ke situs lain.
Tidak. Generator dan validator berjalan sepenuhnya di browser. Meski begitu, jangan menempel nomor kartu asli di situs mana pun yang tidak kamu percaya.