La réponse en bref

La QR-facture connaît deux références structurées. La référence QR compte toujours 27 chiffres : 26 chiffres libres suivis d'un chiffre de contrôle calculé par l'algorithme modulo 10 récursif ; elle exige un QR-IBAN. La Creditor Reference (ISO 11649) compte 5 à 25 caractères alphanumériques : « RF », deux chiffres de contrôle mod 97-10, puis la référence ; elle s'utilise avec un IBAN ordinaire. La restitution de la référence et le détail des transactions dépendent du service bancaire et du canal utilisé. Testez QRR comme SCOR dans le logiciel et prévoyez le traitement des exceptions.

Pourquoi la référence est la donnée la plus précieuse du code

Le Swiss QR Code transporte une dizaine d’informations, mais une seule fait le lien entre le paiement reçu et la facture émise : la référence. Le payeur ne la voit qu’en passant ; la banque du créancier, elle, la restitue dans l’avis de crédit détaillé (fichier camt.054), et le logiciel comptable l’utilise pour lettrer automatiquement l’encaissement. Sans référence structurée, le lettrage repose sur le montant, le nom du payeur ou un texte libre modifiable : trois informations peu fiables.

La norme prévoit deux formats structurés, exclusifs l’un de l’autre, plus l’absence de référence :

Type (élément Tp) Référence Compte requis Longueur
QRR Référence QR QR-IBAN 27 chiffres, toujours
SCOR Creditor Reference ISO 11649 IBAN ordinaire 5 à 25 caractères alphanumériques
NON Aucune IBAN ordinaire L’élément référence reste vide

La référence QR : 27 chiffres et un contrôle modulo 10 récursif

21 00000 00003 13947 14300 090126 chiffres de référence7contrôle mod 10 récursif

La référence QR est purement numérique, longue de 27 positions exactement et ne peut pas être composée uniquement de zéros. Sa structure interne est libre : l’émetteur y range ce qui lui est utile, dans la limite de 26 chiffres, et complète par des zéros à gauche. Le 27e chiffre est le chiffre de contrôle.

Le calcul pas à pas

L’algorithme modulo 10 récursif est celui de l’ancienne référence BVR. Il parcourt les 26 chiffres de gauche à droite avec un « report » initial de 0 et une table de transposition.

Entrée (report + chiffre) mod 10 0 1 2 3 4 5 6 7 8 9
Nouveau report 0 9 4 6 8 2 7 1 3 5

Pour chaque chiffre : on additionne le report et le chiffre, on prend le reste de la division par 10, et on lit le nouveau report dans la table. À la fin, le chiffre de contrôle vaut (10 − report) mod 10.

Exemple sur une référence courte, 1234567 :

Chiffre Report avant (report + chiffre) mod 10 Report après
1 0 1 9
2 9 1 9
3 9 2 4
4 4 8 3
5 3 8 3
6 3 9 5
7 5 2 4

Report final 4, chiffre de contrôle (10 − 4) mod 10 = 6. La référence complète serait 1234567 suivi de 6, complétée par des zéros à gauche jusqu’à 27 positions. Le validateur applique ce calcul et affiche le chiffre attendu en cas d’erreur.

Concevoir sa numérotation

Trois questions à trancher avant de paramétrer le logiciel.

  1. Un préfixe est-il imposé par la banque ? Certaines banques réservent les premiers chiffres à un identifiant du client (souvent six chiffres, héritage du numéro d’adhérent BVR). Il doit figurer dans chaque référence.
  2. Que voulez-vous retrouver dans la référence ? Le schéma courant est préfixe bancaire + numéro de client + numéro de facture, ce qui permet de lire la référence à l’œil nu lors d’un contrôle. D’autres reprennent uniquement le numéro de facture.
  3. Une référence par facture ou par client ? Par facture pour tout ce qui doit être lettré automatiquement. Par client pour des versements récurrents à montant libre (dons, acomptes), où seul le compte client est crédité.

Évitez de changer de schéma après la mise en production : les références déjà envoyées continueront d’arriver pendant des mois.

La Creditor Reference : RF et contrôle mod 97-10

RFpréfixe fixe18contrôle mod 97-105390 0754 7034référence, 1 à 21 car. alphanumériques

La Creditor Reference est définie par la norme internationale ISO 11649 et s’utilise aussi dans les virements SEPA. Elle commence par les lettres RF, suivies de deux chiffres de contrôle, puis de 1 à 21 caractères alphanumériques : au total 5 à 25 caractères. Elle s’associe exclusivement à un IBAN ordinaire et, depuis la version 2.4 des Implementation Guidelines, c’est la seule référence structurée admise pour une facturation en EUR.

Le calcul pas à pas

Le contrôle suit l’algorithme ISO 7064 mod 97-10, le même que pour l’IBAN.

  1. Prendre la référence sans les quatre premiers caractères, et lui accoler RF00.
  2. Remplacer chaque lettre par sa valeur numérique : A = 10, B = 11 … Z = 35 (R = 27, F = 15).
  3. Calculer le reste de la division du nombre obtenu par 97.
  4. Les chiffres de contrôle valent 98 − reste, sur deux positions.

Pour vérifier une référence existante : déplacer les quatre premiers caractères à la fin, convertir les lettres, et s’assurer que le reste modulo 97 vaut 1. Sur RF18 5390 0754 7034, la chaîne 539007547034 + RF18 devient 539007547034271518, dont le reste par 97 est 1 : la référence est valide.

Impression sur la section paiement

La norme fixe la présentation visible de chaque référence, sous le titre « Référence » :

  • référence QR : par blocs, en commençant par 2 chiffres puis 5 groupes de 5 : 21 00000 00003 13947 14300 09017 ;
  • Creditor Reference : par blocs de 4, le dernier pouvant être plus court : RF18 5390 0754 7034. Les zéros de tête peuvent être omis dans la partie visible.

Dans le Swiss QR Code, la référence est encodée sans espaces.

Ce que la banque restitue

Lors du paiement, la référence voyage avec l’ordre (message pain.001 émis par la banque du payeur) et revient au créancier dans l’avis de crédit détaillé camt.054, élément RmtInf/Strd/CdtrRefInf/Ref. Le logiciel de facturation la lit, retrouve la facture ouverte et la solde. En cas de paiement partiel ou multiple, la référence permet de regrouper les encaissements sur la même facture.

Le type NON ne transporte rien de structuré : la communication non structurée (140 caractères) revient telle que le payeur l’a laissée, souvent modifiée ou vide. C’est pourquoi cette variante se limite aux faibles volumes.

Erreurs fréquentes

  1. Référence tronquée à 26 chiffres : le chiffre de contrôle manque, le code est refusé.
  2. Zéros de tête supprimés dans le code : la référence doit être encodée sur 27 positions, seuls l’affichage peut les omettre.
  3. Référence QR avec un IBAN ordinaire, ou Creditor Reference avec un QR-IBAN : couples interdits.
  4. Préfixe bancaire oublié : le paiement arrive, mais la banque peut le rejeter ou le traiter en exception.
  5. Espaces encodés dans le code : la référence lisible est groupée, la référence encodée ne l’est pas.
  6. Référence réutilisée d’une facture à l’autre : lettrage impossible à automatiser.

Avant toute mise en production, passez un jeu de factures de test dans le portail de validation de SIX et contrôlez quelques références dans notre validateur.

Sources et références