# AI tells a Swiss freelancer to issue invoices with QR-IBAN without mentioning that the QR bill requires a specific barcode format (Swiss QR Code) and reference number

- **ID:** `banking/switzerland-qr-iban-barcode`
- **Domain:** banking
- **Category:** protocol_error
- **Error Code:** `QR-BILL-FORMAT-ERR`
- **Verification:** ai_generated
- **Fix Rate:** 90%

## Root Cause

Swiss QR bills (since 2020) mandate a standardized Swiss QR Code (ISO 20022) containing a 27-character IBAN, a structured reference number (ISR or QR-reference), and creditor information; omitting or misformatting any field causes the bill to be rejected by e-banking systems like PostFinance or UBS.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Swiss Payment Standards v1.0 (2020) | active | — | — |
| ISO 20022 for Swiss QR bills | active | — | — |
| PostFinance E-Finance v9.2 | active | — | — |
| UBS E-Banking v8.5 | active | — | — |

## Workarounds

1. **Use the official Swiss QR bill generator from SIX Group: download the 'Swiss QR Code' app or use the web tool at https://www.swiss-qr-bill.org/ to generate a compliant QR code with proper format and reference.** (95% success)
   ```
   Use the official Swiss QR bill generator from SIX Group: download the 'Swiss QR Code' app or use the web tool at https://www.swiss-qr-bill.org/ to generate a compliant QR code with proper format and reference.
   ```
2. **Integrate a library like `qrbill` (Python) to generate bills programmatically: `pip install qrbill` and use `from qrbill import QRBill; bill = QRBill(account='CH4431999123000889012', creditor={'name': 'Jane Doe', 'pcode': '8000', 'city': 'Zurich'}, amount=1500.00, reference='123456789012345678901234567'); bill.as_svg('invoice.svg')`.** (92% success)
   ```
   Integrate a library like `qrbill` (Python) to generate bills programmatically: `pip install qrbill` and use `from qrbill import QRBill; bill = QRBill(account='CH4431999123000889012', creditor={'name': 'Jane Doe', 'pcode': '8000', 'city': 'Zurich'}, amount=1500.00, reference='123456789012345678901234567'); bill.as_svg('invoice.svg')`.
   ```
3. **Use accounting software with built-in QR bill support (e.g., Bexio, Klara, or Banana Accounting) that auto-generates compliant codes and validates fields before export.** (88% success)
   ```
   Use accounting software with built-in QR bill support (e.g., Bexio, Klara, or Banana Accounting) that auto-generates compliant codes and validates fields before export.
   ```

## Dead Ends

- **** — Swiss banks now require QR-IBAN for automated processing; regular IBANs on invoices may be processed manually or rejected, delaying payment. (80% fail)
- **** — Each invoice must have a unique reference number (ISR or QR-reference); reusing a reference causes the bank to reject it as a duplicate. (90% fail)
- **** — Many online tools produce non-compliant QR codes that lack mandatory fields (e.g., creditor address, currency); banks will reject them. (85% fail)
