Swiss QR-bill

Le Swiss QR-bill a remplacé les bulletins de versement suisses orange et rouge en juillet 2020. C'est un payload ISO 20022 Customer Credit Transfer Initiation (pain.001) rendu en QR avec une superposition obligatoire de croix suisse au centre. Toutes les banques suisses l'acceptent ; aucune n'accepte autre chose.

Spécification canonique :SIX Swiss Implementation Guidelines for the QR-bill v2.3 (2024-04).
Base ISO : ISO 20022 pain.001 Customer Credit Transfer Initiation.
Obligatoire depuis : 1er juillet 2020. Les anciens bulletins orange/rouge ont été supprimés le 30 septembre 2022.

Ce que c'est

Le payload est une liste de 32 champs séparés par des sauts de ligne (CRLF) organisés en sept blocs :

QRType         → Toujours "SPC"
Version        → 0200 (v2.3)
Coding         → 1 (Latin-1)
[Informations créancier]           ← 7 champs (IBAN + adresse)
[Créancier final]                  ← 7 champs (optionnel, généralement vide)
[Informations montant paiement]    ← 3 champs (montant, devise, date d'échéance)
[Débiteur final]                   ← 7 champs (optionnel)
[Référence de paiement]            ← 2 champs (type de référence + référence)
[Informations supplémentaires]     ← 2 champs (message non structuré + bill info)
[Procédures alternatives]          ← 2 champs (optionnel, rarement utilisé)

Le QR résultant se trouve dans un bloc "Payment part" dans le tiers inférieur de la facture. Toutes les apps bancaires suisses (UBS, ZKB, PostFinance, Raiffeisen, Neon, Yuh, Revolut CH) le lisent nativement.

QR-IBAN vs IBAN classique

Un "QR-IBAN" est un IBAN suisse spécial où la plage du code bancaire à 5 chiffres est 30000–31999. Les QR-IBANs nécessitent une référence QR structurée (QRR, 27 chiffres, contrôle mod-10). Les IBAN suisses classiques acceptent la référence créancier (SCOR, RFC 8905) ou pas de référence.

Type d'IBAN créancierTypes de référence validesNotes
QR-IBAN (code bancaire 30000–31999)QRR (27 chiffres, mod-10)Obligatoire. SCOR et NON sont invalides.
IBAN classique (CH ou LI)SCOR ou NONQRR est invalide, QR-IBAN uniquement.

Vecteurs de test canoniques

CasEntréesType de référence
Minimal (IBAN classique, sans montant, sans référence)iban=CH9300762011623852957
name=Acme AG
street=Bahnhofstrasse 1
postal=8001
city=Zürich
country=CH
NON
IBAN classique avec montant + message non structuré(idem)
amount=100.00
message=Invoice 1234
NON
QR-IBAN avec référence QRRiban=CH4431999123000889012
name=Acme AG
street=Bahnhofstrasse 1
postal=8001
city=Zürich
country=CH
amount=250.00
reference=210000000003139471430009017
QRR
IBAN du Liechtensteiniban=LI0508800000021904015
name=Beispiel AG
city=Vaduz
country=LI
NON

Validateur IBAN suisse en direct

Le validateur ci-dessous vérifie les trois règles spécifiques à la Suisse : (1) le code pays est CH ou LI, (2) la longueur est exactement 21, (3) le checksum ISO 7064 mod-97 est correct. La saisie collée est normalisée (casse, espaces supprimés).

Entrez un IBAN CH ou LI à valider.

Pièges courants

Compatibilité des scanners

LecteurSupportNotes
UBS Mobile / PostFinance / ZKB appNatifToutes les apps bancaires suisses lisent les QR-bills nativement.
Neon / Yuh / Revolut CHNatifLes neobanques gèrent le payload pain.001 complet.
Caméra iOSNoniOS traite un QR-bill comme une chaîne brute, pas d'analyse. L'utilisateur doit ouvrir une app bancaire.
Caméra Android / Google LensNonIdem, pas d'analyse native.
OCR commercial (ex. services de paiement de factures)OuiLes outils OCR de niveau bancaire lisent les QR-bills dans les pipelines AP/AR.

Voir aussi

Version de la spec vérifiée le 2026-04-18 (SIX v2.3, publié 2024-04). Prochaine révision : 2026-07-18.