AI tells a Swiss freelancer to issue invoices with QR-IBAN without mentioning that the QR bill requires a specific barcode format for automated processing
ID: banking/switzerland-qr-bill-barcode-format
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| Swiss QR Bill Standard v2.0 (2022) | active | — | — | — |
| SIX QR Bill Library v3.1 | active | — | — | — |
| ISO 20022 Payment Initiation v4.0 | active | — | — | — |
Root Cause
Swiss QR bills require a standardized barcode (Swiss QR Code) with a specific data structure (ISO 20022-based) containing the IBAN, amount, and creditor info; using a plain QR-IBAN without the proper format leads to payment rejection or manual processing delays.
generic中文
瑞士 QR 账单需要标准化的条码(瑞士 QR 码),具有特定的数据结构(基于 ISO 20022),包含 IBAN、金额和收款人信息;使用不带正确格式的纯 QR-IBAN 会导致付款被拒绝或人工处理延迟。
Official Documentation
https://www.six-group.com/en/products-services/banking-services/payment-transactions/qr-bill.htmlWorkarounds
-
95% success Use the official SIX QR Bill library (https://github.com/ebanking-ch/qrbill) to generate compliant QR codes.
Use the official SIX QR Bill library (https://github.com/ebanking-ch/qrbill) to generate compliant QR codes.
-
90% success Validate the QR code using the SIX QR Bill validator tool: https://www.qrbill.ch/validator/
Validate the QR code using the SIX QR Bill validator tool: https://www.qrbill.ch/validator/
-
85% success Example code to generate a Swiss QR bill (Python using qrbill library): from qrbill import QRBill my_bill = QRBill( account='CH4431999123000889012', creditor={ 'name': 'Jane Doe', 'pcode': '1000', 'city': 'Lausanne', 'country': 'CH' }, amount=199.95, currency='CHF' ) my_bill.as_svg('invoice_qr.svg') print('QR bill generated successfully')
Example code to generate a Swiss QR bill (Python using qrbill library): from qrbill import QRBill my_bill = QRBill( account='CH4431999123000889012', creditor={ 'name': 'Jane Doe', 'pcode': '1000', 'city': 'Lausanne', 'country': 'CH' }, amount=199.95, currency='CHF' ) my_bill.as_svg('invoice_qr.svg') print('QR bill generated successfully')
中文步骤
Use the official SIX QR Bill library (https://github.com/ebanking-ch/qrbill) to generate compliant QR codes.
Validate the QR code using the SIX QR Bill validator tool: https://www.qrbill.ch/validator/
Example code to generate a Swiss QR bill (Python using qrbill library): from qrbill import QRBill my_bill = QRBill( account='CH4431999123000889012', creditor={ 'name': 'Jane Doe', 'pcode': '1000', 'city': 'Lausanne', 'country': 'CH' }, amount=199.95, currency='CHF' ) my_bill.as_svg('invoice_qr.svg') print('QR bill generated successfully')
Dead Ends
Common approaches that don't work:
-
95% fail
Swiss QR bills require a structured payload (e.g., 'SPC' prefix, version, amount, etc.); generic QR codes are not recognized by Swiss banking apps.
-
80% fail
The QR bill standard mandates the amount; without it, the payment is rejected by the bank's automated system.
-
75% fail
The QR bill format was updated in 2022 (version 2.0); older libraries produce invalid barcodes.