EPC Girocode
EPC Girocode คือรูปแบบ QR ของ European Payments Council สำหรับ SEPA Credit Transfer เมื่อสแกน Girocode แล้ว แอปธนาคารของผู้ชำระเงินจะกรอก IBAN ของผู้รับเงิน จำนวนเงิน และข้อความอ้างอิงการชำระเงินโดยอัตโนมัติ ช่วยลดการคัดลอกข้อมูลธนาคารด้วยตนเอง รองรับโดย Sparkasse, Volksbank, Deutsche Bank, ING, N26, Revolut และแอปธนาคารส่วนใหญ่ในเยอรมนี ออสเตรีย และเนเธอร์แลนด์ ภายนอกเขต SEPA Girocode ไม่มีผลใดๆ
การเข้ารหัส: ข้อความ UTF-8 ธรรมดา ไม่ใช่ TLV และไม่มีโครงสร้างพิเศษ มีฟิลด์ 12 ตำแหน่งแบบตายตัว คั่นด้วย
\n (LF, U+000A) ขนาด payload สูงสุด 331 ไบต์ รูปแบบ: SEPA Credit Transfer (SCT) หรือ SEPA Instant Credit Transfer (SCT Inst) คิวอาร์โค้ดนี้เริ่มการโอนเงินแบบครั้งเดียว ไม่รองรับการหักบัญชีโดยตรงหรือการตั้งคำสั่งชำระประจำ
โครงสร้าง payload 12 บรรทัด คั่นด้วยขึ้นบรรทัดใหม่
| บรรทัด | ฟิลด์ | ความยาว | จำเป็น | หมายเหตุ |
|---|---|---|---|---|
| 1 | Service tag | 3 | ใช่ | ค่าคงที่ BCD |
| 2 | เวอร์ชัน | 3 | ใช่ | 001 (ข้อกำหนดเดิม) หรือ 002 (v2 ที่ BIC เป็นทางเลือกภายใน EEA) |
| 3 | ชุดอักขระ | 1 | ใช่ | 1=UTF-8, 2=ISO-8859-1, 3=ISO-8859-2 เป็นต้น ค่า 1 เป็นตัวเลือกที่ปลอดภัยที่สุด |
| 4 | การระบุตัวตน | 3 | ใช่ | SCT (Credit Transfer มาตรฐาน) SCT Inst ใช้แท็กเดียวกัน การโอนแบบทันทีหรือปกติขึ้นอยู่กับธนาคารผู้รับ |
| 5 | BIC | 0, 8 หรือ 11 | ไม่ (v002) | จำเป็นใน v001 เป็นทางเลือกใน v002 สำหรับการชำระเงิน SEPA ควรใส่สำหรับผู้รับนอก EEA |
| 6 | ชื่อผู้รับเงิน | 1–70 | ใช่ | ชื่อภาษาธรรมชาติ ชุดอักขระตามบรรทัดที่ 3 |
| 7 | IBAN | 1–34 | ใช่ | ไม่มีช่องว่างหรือการจัดรูปแบบ เช่น DE89370400440532013000 ไม่ใช่ DE89 3704 0044 0532 0130 00 |
| 8 | จำนวนเงิน | 4–12 | ไม่ | รูปแบบ: EUR10.00 ละเว้นเพื่อให้ผู้ชำระเงินกรอกจำนวนเองเมื่อสแกน |
| 9 | วัตถุประสงค์ | 0–4 | ไม่ | รหัสวัตถุประสงค์ภายนอก ISO 20022 ตัวอย่าง: GDDS (สินค้า), CHAR (การกุศล) |
| 10 | อ้างอิงการชำระเงินแบบมีโครงสร้าง | 0–35 | ไม่ | อ้างอิงเจ้าหนี้ RF ตาม ISO 11649 สำหรับการกระทบยอดอัตโนมัติ ใช้ร่วมกับบรรทัด 11 ไม่ได้ |
| 11 | ข้อมูลการชำระเงินแบบไม่มีโครงสร้าง | 0–140 | ไม่ | เหตุผลการชำระเงินแบบข้อความอิสระ ใช้ร่วมกับบรรทัด 10 ไม่ได้ |
| 12 | ข้อมูลจากผู้รับถึงผู้โอน | 0–70 | ไม่ | ข้อความแนะนำที่แสดงแก่ผู้ชำระเงินในแอปธนาคาร เช่น "Rechnung 2026-0042" |
เวกเตอร์ทดสอบมาตรฐาน v002 ขั้นต่ำ
การโอน €12.50 ไปยัง Max Mustermann ที่ Commerzbank, IBAN DE89370400440532013000 ไม่มี BIC อ้างอิงแบบไม่มีโครงสร้าง "Rechnung 42":
BCD
002
1
SCT
Max Mustermann
DE89370400440532013000
EUR12.50
Rechnung 42
สังเกตบรรทัดว่างในตำแหน่งที่ 5 (ไม่มี BIC) 9 (ไม่มีวัตถุประสงค์) และ 10 (ไม่มีอ้างอิงแบบมีโครงสร้าง) บรรทัดเหล่านี้จำเป็น จำนวนบรรทัดต้องเท่ากับ 12 พอดี (หรือ 11 หากละเว้นบรรทัดที่ 12)
ตัวตรวจสอบ IBAN แบบสด (mod-97)
Girocode ปฏิเสธ IBAN ที่ไม่ผ่านการตรวจสอบ checksum mod-97 ตาม ISO 13616 ด้านล่างนี้คือตัวตรวจสอบเดียวกับที่ Abundera ใช้ใน เครื่องมือสร้าง Girocode ทำงานในเบราว์เซอร์ของคุณ
ข้อผิดพลาดที่พบบ่อย
- ตัวจบบรรทัด. EPC069-12 กำหนดให้ใช้ LF (
\n, U+000A) CR+LF (\r\n) ทำให้แอปธนาคาร Android บางรุ่นทำงานผิดพลาด หากคัดลอก payload จาก Windows Notepad จะได้ CR+LF ให้ลบ CR ออกก่อนเข้ารหัส QR - BIC จำเป็นใน v001 เป็นทางเลือกใน v002. ควรส่ง version
002เสมอสำหรับการโอนภายใน SEPA ช่วยประหยัด 8–11 อักขระใน payload และใช้งานได้กับทุกแอปธนาคารสมัยใหม่ ใส่ BIC เฉพาะสำหรับแอปรุ่นเก่า v001 (ส่วนใหญ่เลิกใช้แล้ว) หรือผู้รับนอก EEA - รูปแบบจำนวนเงินเข้มงวด.
EUR10.00ต้องมีรหัสสกุลเงินนำหน้า จุดคั่นทศนิยม และทศนิยมสองตำแหน่งพอดีEUR10,EUR10,00,10.00 EURล้วนไม่ถูกต้อง - ใช้อ้างอิงแบบมีโครงสร้างและไม่มีโครงสร้างพร้อมกันไม่ได้. บรรทัดที่ 10 และ 11 ใช้ร่วมกันไม่ได้ หากทั้งสองไม่ว่าง ข้อกำหนดถือว่า QR ไม่ถูกต้อง ในทางปฏิบัติบางแอปยอมรับและละทิ้งค่าหนึ่ง ซึ่งอาจทำให้เกิดความคลาดเคลื่อนในการกระทบยอด
- ช่องว่างใน IBAN. ฟิลด์ IBAN (บรรทัดที่ 7) ไม่รับช่องว่าง
DE89 3704 0044 0532 0130 00ที่อ่านง่ายต้องถูกลบช่องว่างออกเป็นDE89370400440532013000ก่อนเข้ารหัส - ขนาด payload สูงสุด 331 ไบต์. Payload ที่เกิน 331 ไบต์จะถูกปฏิเสธตามข้อกำหนด ชื่อผู้รับที่ยาว ข้อความอ้างอิงยาว BIC และ IBAN อาจทำให้เกินได้ แอปธนาคารจะแสดงข้อผิดพลาดเมื่อสแกน QR ไม่แจ้งเตือนขณะเข้ารหัส
- กับดักชุดอักขระ. บรรทัดที่ 3 ระบุชุดอักขระที่ใช้กับบรรทัดที่ 6, 11, 12 UTF-8 (ค่า
1) เป็นตัวเลือกเดียวที่ใช้งานได้จริงสำหรับชื่อนานาชาติ ISO-8859-1 ไม่สามารถเข้ารหัสอักขระนอก Latin ยุโรปตะวันตกได้ - ใช้งานได้เฉพาะในเขต SEPA. การชำระเงิน Girocode ใช้ได้เฉพาะระหว่างบัญชีในประเทศ SEPA (EU + EEA + สวิตเซอร์แลนด์ + สหราชอาณาจักร + โมนาโก + ซานมารีโน + อันดอร์รา + วาติกัน) การสแกน Girocode ในแอปธนาคารที่ไม่รองรับ SEPA จะล้มเหลวหรือเปิดหน้าจอโอนเงินปกติที่ว่างเปล่า
- ไม่รองรับการหักบัญชีโดยตรง. Girocode รองรับเฉพาะ SEPA Credit Transfer ไม่สามารถใช้กับการดึงเงิน การสมัครรับบริการ การตั้งคำสั่งชำระประจำ หรือการมอบอำนาจ SEPA ที่เกิดซ้ำ สำหรับกรณีเหล่านี้ให้ใช้ QR ควบคู่กับเอกสารมอบอำนาจ SEPA แยกต่างหาก
- สิทธิ์คืนเงินตาม PSD2. SEPA Credit Transfer เป็นการชำระเงินแบบ push ที่ผู้บริโภคอนุมัติเองเมื่อสแกน สิทธิ์คืนเงินของผู้บริโภคตาม PSD2 ยังคงมีผล (เช่น รายการที่ไม่ได้รับอนุมัติภายใน 13 เดือน) ผู้ค้าต้องเก็บหลักฐานการอนุมัติแยกต่างหาก QR เองไม่ใช่สัญญา
ความเข้ากันได้กับแอปธนาคาร
| แอป / ภูมิภาค | รองรับ Girocode | หมายเหตุ |
|---|---|---|
| Sparkasse (DE) | รองรับโดยตรง | เป้าหมายดั้งเดิมของ Girocode รองรับครบถ้วน |
| Volksbank / Raiffeisen (DE, AT) | รองรับโดยตรง | รองรับครบถ้วนใน VR-BankingApp |
| Deutsche Bank, Commerzbank, Postbank (DE) | รองรับโดยตรง | สแกนผ่านขั้นตอน "Überweisung" ในแอปมือถือ |
| ING (DE / NL) | รองรับโดยตรง | แอป NL รองรับการสแกน iDEAL QR ด้วย |
| N26, Revolut | รองรับโดยตรง | รองรับครบถ้วนในทุกประเทศที่ให้บริการ |
| Erste Bank, Bank Austria (AT) | รองรับโดยตรง | ออสเตรียนำ Girocode มาใช้พร้อมกับเยอรมนี |
| Crédit Agricole, BNP Paribas (FR) | บางส่วน | ธนาคารฝรั่งเศสบางแห่งสแกน Girocode ได้ แต่ส่วนใหญ่ยังนิยมรูปแบบอ้างอิงกระดาษแบบเก่า |
| กล้อง iOS/Android ทั่วไป | ไม่รองรับ | กล้องในตัวไม่แปลรูปแบบข้อความ BCD เป็นคำสั่งชำระเงิน ผู้ใช้ต้องเปิดแอปธนาคารก่อน |
ดูเพิ่มเติม
- /epc-girocode-qr-code/ เครื่องมือสร้าง Girocode พร้อมการตรวจสอบ IBAN และการเข้ารหัสแบบสด
- /sepa-qr-code/ เครื่องมือสร้าง QR สำหรับ SEPA Credit Transfer (รูปแบบพื้นฐานเดียวกัน)
- /standards/swiss-qr-bill/ Swiss QR-bill ทางเลือกในภูมิภาคสำหรับการโอนเงิน CHF/Swiss-IBAN
- /standards/ กลับสู่ดัชนีมาตรฐาน