Swiss QR-bill
De Swiss QR-bill verving de Zwitserse oranje en rode betaalstroken in juli 2020. Het is een ISO 20022 Customer Credit Transfer Initiation (pain.001)-payload weergegeven als een QR met een verplicht Zwitsers-kruis overlay in het midden. Elke Zwitserse bank accepteert hem; geen enkele Zwitserse bank accepteert iets anders.
ISO-basis: ISO 20022
pain.001 Customer Credit Transfer Initiation. Verplicht sinds: 1 juli 2020. Oude oranje/rode betaalstroken afgeschaft op 30 september 2022.
Wat het is
De payload is een newline-gescheiden (CRLF) lijst van 32 velden verdeeld over zeven blokken:
QRType → Altijd "SPC" Version → 0200 (v2.3) Coding → 1 (Latin-1) [Creditor Information] ← 7 velden (IBAN + adres) [Ultimate Creditor] ← 7 velden (optioneel, doorgaans leeg) [Payment Amount Information] ← 3 velden (bedrag, valuta, vervaldatum) [Ultimate Debtor] ← 7 velden (optioneel) [Payment Reference] ← 2 velden (referentietype + referentie) [Additional Information] ← 2 velden (ongestructureerd bericht + factuuinfo) [Alternative Procedures] ← 2 velden (optioneel, zelden gebruikt)
De resulterende QR bevindt zich in een betalingsgedeelteblok op het onderste derde deel van de factuur. Elke Zwitserse bankapp (UBS, ZKB, PostFinance, Raiffeisen, Neon, Yuh, Revolut CH) leest hem native.
QR-IBAN vs. gewone IBAN
Een "QR-IBAN" is een speciale Zwitserse IBAN waarbij het 5-cijferige bankcode-bereik 30000–31999 is. QR-IBANs vereisen een gestructureerde QR-referentie (QRR, 27 cijfers, mod-10). Reguliere Zwitserse IBANs accepteren crediteurReferentie (SCOR, RFC 8905) of geen referentie.
| Crediteur IBAN-type | Geldige referentietypes | Opmerkingen |
|---|---|---|
| QR-IBAN (bankcode 30000–31999) | QRR (27-cijferig, mod-10) | Verplicht. SCOR en NON zijn ongeldig. |
| Reguliere IBAN (CH of LI) | SCOR of NON | QRR is ongeldig, alleen QR-IBAN. |
Canonieke testvectoren
| Geval | Invoer | Referentietype |
|---|---|---|
| Minimaal (gewone IBAN, geen bedrag, geen referentie) | iban=CH9300762011623852957 | NON |
| Gewone IBAN met bedrag + ongestructureerd bericht | (zelfde als hierboven)amount=100.00 | NON |
| QR-IBAN met QRR-referentie | iban=CH4431999123000889012 | QRR |
| Liechtenstein IBAN | iban=LI0508800000021904015 | NON |
Live Zwitserse IBAN-validator
De validator hieronder controleert de drie Zwitserse specifieke regels: (1) landcode is CH of LI, (2) lengte is precies 21, (3) ISO 7064 mod-97-checksum slaagt. Geplakte invoer wordt genormaliseerd (hoofdletters en spaties verwijderd).
Veelgemaakte fouten
- Verkeerd referentietype voor het IBAN-type. Een QR-IBAN met een NON- of SCOR-referentie wordt afgewezen bij de bank. Een gewone IBAN met een QRR-referentie ook. Abundera selecteert automatisch het juiste type; handgemaakte encoders maken hier vaak fouten.
- Ontbrekende Zwitsers-kruis overlay. De QR-bill-specificatie vereist een 7 mm × 7 mm Zwitserse vlag (wit kruis op rood, met 1 mm witte rand) gecentreerd op de QR. Dit is niet optioneel, bancaire OCR-pipelines gebruiken het als QR-bill-handtekening. Abundera voegt het automatisch toe.
- QR-module foutcorrectieniveau. De specificatie vereist ECC-niveau M. Hogere of lagere ECC-niveaus produceren een QR die er goed uitziet maar door de bank wordt afgewezen.
- Adresveldlengte. Crediteursnaam, straat, postcode, stad, elk beperkt tot 70 Latin-1-tekens. Te lange strings worden stilzwijgend afgekapt door sommige encoders, wat afstemming verbreekt.
- Alleen valuta CHF of EUR. De Swiss QR-bill ondersteunt slechts twee valuta's. Alle andere valuta's worden afgewezen.
- Referentie mod-10 vs. mod-97. QRR-referenties gebruiken een mod-10 recursieve checksum (Luhn-variant). Niet te verwarren met de mod-97 IBAN-checksum. Handgemaakte referentiegeneratoren voeren de Luhn-controle vaak verkeerd uit.
- Latin-1, niet UTF-8. Veld
Codingis "1" = Latin-1. Niet-Latin-1-tekens (ä/ö/ü overleven; Cyrillisch/Chinees niet) verbreken sommige oudere bankapps.
Scannercompatibiliteit
| Lezer | Ondersteuning | Opmerkingen |
|---|---|---|
| UBS Mobile / PostFinance / ZKB-app | Native | Elke Zwitserse bankapp leest QR-bills native. |
| Neon / Yuh / Revolut CH | Native | Neobanken verwerken de volledige pain.001-payload. |
| iOS Camera | Nee | iOS behandelt een QR-bill als een ruwe string, geen parsing. Gebruiker moet een bankapp openen. |
| Android Camera / Google Lens | Nee | Hetzelfde, geen native parsing. |
| Commerciële OCR (bijv. factuurbetalingsdiensten) | Ja | Bankwaardige OCR-tooling leest QR-bills in AP/AR-pipelines. |
Zie ook
- /swiss-qr-bill-generator/, de generator met ingebouwde IBAN-validatie.
- /standards/, terug naar de standaardenindex.
- SIX Implementation Guidelines, de gezaghebbende specificatie.