Swiss QR-bill
Il Swiss QR-bill ha sostituito le ricevute di pagamento svizzere arancio e rosse nel luglio 2020. È un payload ISO 20022 Customer Credit Transfer Initiation (pain.001) reso come QR con una sovrapposizione obbligatoria di croce svizzera al centro. Ogni banca svizzera lo accetta; nessuna banca svizzera accetta nient'altro.
Base ISO: ISO 20022
pain.001 Customer Credit Transfer Initiation. Obbligatorio dal: 1° luglio 2020. Le vecchie ricevute arancio/rosse sono state eliminate il 30 settembre 2022.
Cos'è
Il payload è un elenco di 32 campi separati da interruzioni di riga (CRLF) organizzati in sette blocchi:
QRType → Sempre "SPC" Version → 0200 (v2.3) Coding → 1 (Latin-1) [Informazioni creditore] ← 7 campi (IBAN + indirizzo) [Creditore finale] ← 7 campi (opzionale, di solito vuoto) [Informazioni importo pagamento] ← 3 campi (importo, valuta, data scadenza) [Debitore finale] ← 7 campi (opzionale) [Riferimento pagamento] ← 2 campi (tipo riferimento + riferimento) [Informazioni aggiuntive] ← 2 campi (messaggio non strutturato + bill info) [Procedure alternative] ← 2 campi (opzionale, raramente usato)
Il QR risultante si trova all'interno di un blocco "Payment part" nel terzo inferiore della fattura. Ogni app bancaria svizzera (UBS, ZKB, PostFinance, Raiffeisen, Neon, Yuh, Revolut CH) lo legge nativamente.
QR-IBAN vs IBAN normale
Un "QR-IBAN" è un IBAN svizzero speciale dove l'intervallo del codice bancario a 5 cifre è 30000–31999. I QR-IBAN richiedono un riferimento QR strutturato (QRR, 27 cifre, verifica mod-10). Gli IBAN svizzeri normali accettano riferimento creditore (SCOR, RFC 8905) o nessun riferimento.
| Tipo IBAN creditore | Tipi di riferimento validi | Note |
|---|---|---|
| QR-IBAN (codice bancario 30000–31999) | QRR (27 cifre, mod-10) | Obbligatorio. SCOR e NON non sono validi. |
| IBAN normale (CH o LI) | SCOR o NON | QRR non è valido, solo per QR-IBAN. |
Vettori di test canonici
| Caso | Input | Tipo di riferimento |
|---|---|---|
| Minimale (IBAN normale, nessun importo, nessun riferimento) | iban=CH9300762011623852957 | NON |
| IBAN normale con importo + messaggio non strutturato | (come sopra)amount=100.00 | NON |
| QR-IBAN con riferimento QRR | iban=CH4431999123000889012 | QRR |
| IBAN del Liechtenstein | iban=LI0508800000021904015 | NON |
Validatore IBAN svizzero live
Il validatore qui sotto verifica le tre regole specifiche per la Svizzera: (1) il codice paese è CH o LI, (2) la lunghezza è esattamente 21, (3) il checksum ISO 7064 mod-97 è valido. L'input incollato viene normalizzato (maiuscole, spazi rimossi).
Insidie comuni
- Tipo di riferimento errato per il tipo di IBAN. Un QR-IBAN con riferimento NON o SCOR viene rifiutato dalla banca. Un IBAN normale con riferimento QRR viene anch'esso rifiutato. Abundera seleziona automaticamente il tipo corretto; gli encoder manuali spesso sbagliano.
- Sovrapposizione della croce svizzera mancante. La specifica QR-bill richiede una bandiera svizzera di 7 mm × 7 mm (croce bianca su rosso, con bordo bianco di 1 mm) centrata sul QR. Non è opzionale, le pipeline OCR bancarie la usano come firma del QR-bill. Abundera la sovrappone automaticamente.
- Livello di correzione degli errori del modulo QR. La specifica richiede ECC livello M. Livelli ECC più alti o più bassi producono un QR che sembra corretto ma che la banca rifiuta.
- Lunghezza dei campi indirizzo. Nome creditore, via, codice postale, città, ognuno limitato a 70 caratteri Latin-1. Stringhe troppo lunghe vengono silenziosamente troncate da alcuni encoder, il che rompe la riconciliazione.
- Solo valuta CHF o EUR. Il QR-bill supporta solo due valute. Qualsiasi altra valuta viene rifiutata.
- Riferimento mod-10 vs mod-97. I riferimenti QRR usano un checksum mod-10 ricorsivo (variante Luhn). Non confondere con il checksum mod-97 dell'IBAN. I generatori di riferimento fatti a mano spesso applicano il Luhn in modo errato.
- Latin-1, non UTF-8. Il campo
Codingè "1" = Latin-1. I caratteri non Latin-1 (ä/ö/ü sopravvivono; cirillico/cinese no) rompono alcune app bancarie più vecchie.
Compatibilità scanner
| Lettore | Supporto | Note |
|---|---|---|
| UBS Mobile / PostFinance / ZKB app | Nativo | Ogni app bancaria svizzera legge i QR-bill nativamente. |
| Neon / Yuh / Revolut CH | Nativo | I neobank gestiscono l'intero payload pain.001. |
| Fotocamera iOS | No | iOS tratta un QR-bill come una stringa grezza, nessuna analisi. L'utente deve aprire un'app bancaria. |
| Fotocamera Android / Google Lens | No | Uguale, nessuna analisi nativa. |
| OCR commerciale (es. servizi di pagamento fatture) | Sì | Gli strumenti OCR di livello bancario leggono i QR-bill nelle pipeline AP/AR. |
Vedi anche
- /swiss-qr-bill-generator/, il generatore con validazione IBAN inline.
- /standards/, torna all'indice degli standard.
- SIX Implementation Guidelines, la specifica di riferimento.