Swiss QR-bill
Swiss QR-bill แทนที่ใบนำฝากสีส้มและสีแดงของสวิตเซอร์แลนด์ในเดือนกรกฎาคม 2020 เป็น payload ISO 20022 Customer Credit Transfer Initiation (pain.001) ที่แสดงเป็น QR พร้อม Swiss-cross overlay บังคับตรงกลาง ทุกธนาคารสวิสรับ ไม่มีธนาคารใดรับสิ่งอื่น
พื้นฐาน ISO: ISO 20022
pain.001 Customer Credit Transfer Initiation. บังคับใช้ตั้งแต่: 1 กรกฎาคม 2020 ใบนำฝากสีส้ม/แดงเดิมถูกยกเลิก 30 กันยายน 2022
ภาพรวม
Payload คือรายการ 32 ฟิลด์แยกด้วยขึ้นบรรทัดใหม่ (CRLF) จัดเป็น 7 บล็อก:
QRType → "SPC" เสมอ Version → 0200 (v2.3) Coding → 1 (Latin-1) [ข้อมูลเจ้าหนี้] ← 7 ฟิลด์ (IBAN + ที่อยู่) [เจ้าหนี้สุดท้าย] ← 7 ฟิลด์ (ไม่บังคับ มักว่างเปล่า) [ข้อมูลจำนวนเงิน] ← 3 ฟิลด์ (จำนวนเงิน สกุลเงิน วันครบกำหนด) [ลูกหนี้สุดท้าย] ← 7 ฟิลด์ (ไม่บังคับ) [อ้างอิงการชำระเงิน] ← 2 ฟิลด์ (ประเภทอ้างอิง + อ้างอิง) [ข้อมูลเพิ่มเติม] ← 2 ฟิลด์ (ข้อความไม่มีโครงสร้าง + ข้อมูลใบเรียกเก็บเงิน) [ขั้นตอนทางเลือก] ← 2 ฟิลด์ (ไม่บังคับ แทบไม่ค่อยใช้)
QR วางอยู่ในบล็อก "ส่วนการชำระเงิน" ที่หนึ่งในสามด้านล่างของใบแจ้งหนี้ ทุกแอปธนาคารสวิส (UBS, ZKB, PostFinance, Raiffeisen, Neon, Yuh, Revolut CH) อ่านได้โดยตรง
QR-IBAN vs IBAN ปกติ
"QR-IBAN" คือ IBAN สวิตเซอร์แลนด์พิเศษที่ช่วงรหัสธนาคาร 5 หลักอยู่ที่ 30000–31999 QR-IBAN ต้องการอ้างอิง QR แบบมีโครงสร้าง (QRR, 27 หลัก, mod-10 check) IBAN สวิตเซอร์แลนด์ปกติรับ creditor reference (SCOR, RFC 8905) หรือไม่มีอ้างอิง (NON)
| ประเภท IBAN เจ้าหนี้ | ประเภทอ้างอิงที่ถูกต้อง | หมายเหตุ |
|---|---|---|
| QR-IBAN (รหัสธนาคาร 30000–31999) | QRR (27 หลัก, mod-10) | บังคับ SCOR และ NON ไม่ถูกต้อง |
| IBAN ปกติ (CH หรือ LI) | SCOR หรือ NON | QRR ไม่ถูกต้อง, เฉพาะ QR-IBAN เท่านั้น |
Test vector มาตรฐาน
| กรณี | ข้อมูลนำเข้า | ประเภทอ้างอิง |
|---|---|---|
| ขั้นต่ำ (IBAN ปกติ ไม่มีจำนวนเงิน ไม่มีอ้างอิง) | iban=CH9300762011623852957 | NON |
| IBAN ปกติ + จำนวนเงิน + ข้อความไม่มีโครงสร้าง | (เหมือนด้านบน)amount=100.00 | NON |
| QR-IBAN + อ้างอิง QRR | iban=CH4431999123000889012 | QRR |
| IBAN ลีชเทนสไตน์ | iban=LI0508800000021904015 | NON |
ตัวตรวจสอบ IBAN สวิตเซอร์แลนด์สด
ตัวตรวจสอบด้านล่างตรวจสอบสามกฎเฉพาะของสวิตเซอร์แลนด์: (1) รหัสประเทศเป็น CH หรือ LI, (2) ความยาวเท่ากับ 21 ตัวพอดี, (3) checksum ISO 7064 mod-97 ผ่าน ข้อมูลที่วางจะถูกทำให้เป็นมาตรฐาน (ตัวพิมพ์ใหญ่-เล็ก ช่องว่างถูกลบออก)
จุดที่มักพลาด
- ประเภทอ้างอิงไม่ตรงกับประเภท IBAN. QR-IBAN ที่มีอ้างอิง NON หรือ SCOR จะถูกปฏิเสธโดยธนาคาร IBAN ปกติที่มีอ้างอิง QRR ก็จะถูกปฏิเสธเช่นกัน Abundera เลือกประเภทที่ถูกต้องอัตโนมัติ encoder ที่สร้างเองมักผิดตรงนี้
- ไม่มี Swiss-cross overlay. ข้อกำหนด QR-bill ต้องมีธงสวิตเซอร์แลนด์ 7mm×7mm (กากบาทขาวบนพื้นแดง มีขอบขาว 1mm) ที่กึ่งกลาง QR ไม่ใช่ตัวเลือก Abundera เพิ่ม overlay อัตโนมัติ
- ระดับ ECC ของ module QR. ข้อกำหนดต้องการระดับ ECC M ระดับที่สูงหรือต่ำกว่าจะสร้าง QR ที่ดูถูกต้องแต่ถูกปฏิเสธโดยธนาคาร
- ความยาวฟิลด์ที่อยู่. ชื่อเจ้าหนี้ ถนน รหัสไปรษณีย์ เมือง แต่ละอย่างจำกัด 70 ตัวอักษร Latin-1 บาง encoder ตัดสตริงที่เกินอย่างเงียบๆ ทำให้การกระทบยอดเสียหาย
- สกุลเงินเฉพาะ CHF หรือ EUR. QR-bill รองรับเพียงสองสกุลเงิน สกุลเงินอื่นทั้งหมดถูกปฏิเสธ
- อ้างอิง mod-10 vs mod-97. อ้างอิง QRR ใช้ checksum แบบเรียกซ้ำ mod-10 (Luhn variant) ไม่ต้องสับสนกับ checksum mod-97 ของ IBAN generator อ้างอิงที่ทำเองมักทำ Luhn ผิดวิธี
- Latin-1 ไม่ใช่ UTF-8. ฟิลด์
Codingคือ "1" = Latin-1 ตัวอักษรนอก Latin-1 (ä/ö/ü ได้; Cyrillic/ภาษาจีนไม่ได้) ทำให้แอปธนาคารรุ่นเก่าบางตัวเสียหาย
ความเข้ากันได้ของเครื่องสแกน
| เครื่องอ่าน | รองรับ | หมายเหตุ |
|---|---|---|
| UBS Mobile / PostFinance / ZKB app | โดยตรง | ทุกแอปธนาคารสวิสอ่าน QR-bill โดยตรง |
| Neon / Yuh / Revolut CH | โดยตรง | Neobanks จัดการ payload pain.001 ครบถ้วน |
| iOS Camera | ไม่ | iOS ถือว่า QR-bill เป็นสตริงดิบ ไม่มีการแยกวิเคราะห์ ผู้ใช้ต้องเปิดแอปธนาคาร |
| Android Camera / Google Lens | ไม่ | เหมือนกัน ไม่มีการแยกวิเคราะห์โดยตรง |
| OCR เชิงพาณิชย์ (เช่น บริการชำระค่าใช้จ่าย) | ใช่ | เครื่องมือ OCR ระดับธนาคารอ่าน QR-bill เข้าสู่ขั้นตอน AP/AR |
ดูเพิ่มเติม
- /swiss-qr-bill-generator/, ตัวสร้างพร้อม IBAN validator ในตัว
- /standards/, กลับไปที่ดัชนีมาตรฐาน
- SIX Implementation Guidelines, ข้อกำหนดที่มีสิทธิ์