EPC Girocode
EPC Girocode adalah format QR dari European Payments Council untuk SEPA Credit Transfer. Saat dipindai, Girocode mengisi otomatis IBAN penerima, jumlah, dan keterangan transfer di aplikasi perbankan pembayar, sehingga tidak perlu menyalin detail bank secara manual. Didukung secara native oleh Sparkasse, Volksbank, Deutsche Bank, ING, N26, Revolut, dan sebagian besar aplikasi perbankan Jerman/Austria/Belanda. Di luar zona SEPA, Girocode tidak berfungsi.
Encoding: Teks UTF-8 biasa, bukan TLV, bukan terstruktur. Dua belas field posisi tetap dipisahkan oleh
\n (LF, U+000A). Payload maksimal 331 byte. Skema: SEPA Credit Transfer (SCT) atau SEPA Instant Credit Transfer (SCT Inst). QR memicu transfer kredit sekali jalan; tidak ada debit langsung / standing order.
Struktur payload, 12 baris, dipisahkan newline
| Baris | Field | Panjang | Wajib | Catatan |
|---|---|---|---|---|
| 1 | Service tag | 3 | Ya | Nilai tetap BCD. |
| 2 | Versi | 3 | Ya | 001 (spesifikasi asli) atau 002 (v2, BIC kini opsional di dalam EEA). |
| 3 | Character set | 1 | Ya | 1=UTF-8, 2=ISO-8859-1, 3=ISO-8859-2, dll. 1 adalah satu-satunya pilihan yang aman. |
| 4 | Identifikasi | 3 | Ya | SCT (Credit Transfer standar). SCT Inst menggunakan tag yang sama; keputusan instan/standar ada pada acquirer. |
| 5 | BIC | 0, 8, atau 11 | Tidak (v002) | Wajib di v001; opsional di v002 untuk pembayaran SEPA. Sertakan untuk penerima di luar EEA. |
| 6 | Nama penerima | 1-70 | Ya | Nama bahasa alami. Character set mengikuti baris 3. |
| 7 | IBAN | 1-34 | Ya | Tanpa spasi atau pemformatan. DE89370400440532013000, bukan DE89 3704 0044 0532 0130 00. |
| 8 | Jumlah | 4-12 | Tidak | Format: EUR10.00. Kosongkan agar pembayar memasukkan jumlah saat memindai. |
| 9 | Tujuan | 0-4 | Tidak | ISO 20022 External Purpose Code. Contoh: GDDS (barang), CHAR (amal). |
| 10 | Referensi remitansi terstruktur | 0-35 | Tidak | ISO 11649 RF creditor reference, untuk rekonsiliasi otomatis. Tidak bisa digunakan bersama baris 11. |
| 11 | Info remitansi tidak terstruktur | 0-140 | Tidak | Alasan pembayaran teks bebas. Tidak bisa digunakan bersama baris 10. |
| 12 | Info penerima ke pengirim | 0-70 | Tidak | Teks petunjuk opsional yang ditampilkan kepada pembayar di aplikasi bank (mis. "Rechnung 2026-0042"). |
Test vector kanonik, v002 minimal
Transfer sebesar \u20ac12.50 ke Max Mustermann di Commerzbank, IBAN DE89370400440532013000, tanpa BIC, referensi tidak terstruktur "Rechnung 42":
BCD
002
1
SCT
Max Mustermann
DE89370400440532013000
EUR12.50
Rechnung 42
Perhatikan baris kosong di posisi 5 (tanpa BIC), 9 (tanpa tujuan), 10 (tanpa referensi terstruktur). Baris kosong ini wajib ada; jumlah baris harus tepat 12 (atau 11 jika baris 12 dihilangkan).
Validator IBAN langsung (mod-97)
Girocode menolak IBAN yang gagal checksum mod-97 ISO 13616. Di bawah ini adalah validator yang sama yang dijalankan Abundera secara inline di dalam generator Girocode, berjalan di browser Anda.
Kesalahan umum
- Akhiran baris. EPC069-12 mewajibkan LF (
\n, U+000A). CR+LF (\r\n) merusak beberapa aplikasi perbankan Android. Jika Anda menyalin payload dari Windows Notepad, hasilnya akan berakhiran CR+LF; hapus CR sebelum encoding QR. - BIC wajib untuk v001, opsional untuk v002. Selalu gunakan versi
002untuk transfer internal SEPA, menghemat 8-11 karakter payload dan kompatibel dengan semua aplikasi perbankan modern. Sertakan BIC hanya untuk aplikasi v001 lama (kebanyakan sudah tidak aktif) atau penerima di luar EEA. - Format jumlah ketat.
EUR10.00, awalan kode mata uang, pemisah titik, tepat dua desimal.EUR10,EUR10,00,10.00 EURsemuanya gagal. - Tidak bisa mencampur referensi terstruktur dan tidak terstruktur. Baris 10 dan baris 11 saling eksklusif. Jika keduanya terisi, spesifikasi menyatakan QR tidak valid; dalam praktiknya beberapa aplikasi menerimanya dan mengabaikan salah satu, yang menyebabkan ketidakcocokan rekonsiliasi.
- Spasi IBAN. Field IBAN (baris 7) tidak menerima spasi. Format yang mudah dibaca
DE89 3704 0044 0532 0130 00harus dihapus spasinya menjadiDE89370400440532013000sebelum encoding. - Payload maksimal 331 byte. Payload QR yang melebihi 331 byte ditolak oleh spesifikasi. Nama penerima yang panjang + pesan remitansi yang panjang + BIC + IBAN bisa melampaui batas ini. Aplikasi perbankan menampilkan error saat memindai; QR tidak memberi peringatan sendiri saat encoding.
- Jebakan character set. Baris 3 menentukan charset yang berlaku untuk baris 6, 11, 12. UTF-8 (nilai
1) adalah satu-satunya pilihan realistis untuk nama internasional. ISO-8859-1 tidak bisa mengenkode apa pun di luar Latin Eropa Barat. - Hanya zona SEPA. Pembayaran Girocode hanya berfungsi antara akun yang berpartisipasi di SEPA (EU + EEA + Swiss + Inggris + Monako + San Marino + Andorra + Vatikan). Memindai Girocode di aplikasi perbankan non-SEPA akan gagal atau membuka layar transfer normal dengan field kosong.
- Tidak ada debit langsung. Girocode hanya untuk SEPA Credit Transfer. Alur pull/langganan (standing order, mandat berulang) tidak bisa diekspresikan dalam Girocode. Untuk itu, padukan QR dengan dokumen mandat SEPA.
- Hak pengembalian PSD2. SEPA Credit Transfer bersifat push dan diotorisasi konsumen saat memindai. Hak pengembalian konsumen berdasarkan PSD2 tetap berlaku (mis. transaksi tidak sah dalam 13 bulan). Pedagang harus menyimpan jejak otorisasi yang ditandatangani secara terpisah; QR itu sendiri bukan kontrak.
Kompatibilitas aplikasi perbankan
| Aplikasi / wilayah | Dukungan Girocode | Catatan |
|---|---|---|
| Sparkasse (DE) | Native | Target awal Girocode. Dukungan penuh. |
| Volksbank / Raiffeisen (DE, AT) | Native | Dukungan penuh di VR-BankingApp. |
| Deutsche Bank, Commerzbank, Postbank (DE) | Native | Pindai melalui alur "Überweisung" di aplikasi mobile mereka. |
| ING (DE / NL) | Native | Juga memindai QR iDEAL di aplikasi NL. |
| N26, Revolut | Native | Dukungan penuh di semua negara yang didukung. |
| Erste Bank, Bank Austria (AT) | Native | Austria mengadopsi Girocode bersama Jerman. |
| Crédit Agricole, BNP Paribas (FR) | Sebagian | Beberapa bank Prancis memindai Girocode; kebanyakan masih lebih memilih format referensi kertas lama. |
| Kamera iOS/Android generik | Tidak | Kamera native tidak mengurai format teks BCD sebagai maksud pembayaran. Pengguna harus membuka aplikasi perbankan terlebih dahulu. |
Lihat juga
- /epc-girocode-qr-code/, generator Girocode dengan validasi IBAN dan encoding langsung.
- /sepa-qr-code/, generator QR SEPA Credit Transfer (format dasar yang sama).
- /standards/swiss-qr-bill/, Swiss QR-bill, alternatif regional untuk transfer CHF/Swiss-IBAN.
- /standards/, kembali ke indeks standar.