Un code QR EPC ne contient pas de lien. Il contient un virement SEPA, écrit sous la forme d'un court bloc de texte brut, et une application bancaire qui reconnaît le format le lit et remplit le formulaire de virement. Aucun serveur n'est contacté, rien n'est consulté, et rien du scan ne vous parvient.
Ce seul fait détermine tout le reste de la façon dont ces codes sont utilisés. Vous ne pouvez pas en raccourcir un, vous ne pouvez pas en repointer un, et vous ne pouvez pas compter les scans, car il n'y a de requête nulle part dans le flux. La norme derrière cela est l'EPC069-12 du Conseil européen des paiements, les codes sont généralement appelés GiroCodes sur les marchés germanophones, et le format mérite d'être compris précisément avant d'en imprimer des milliers sur des factures. Pour le cas général de ce qu'un code peut transporter, ce qu'est un code QR couvre la question de la charge utile.
Ce que la charge utile contient réellement
La charge utile est une séquence de lignes, dans un ordre fixe, chacune étant un élément distinct. Un analyseur lit la ligne 1, attend BCD, lit la ligne 4, attend SCT, et abandonne si l'un des deux manque.
| Ligne | Contenu | Limite |
|---|---|---|
| Balise de service | BCD | fixe, 3 caractères |
| Version | 001 ou 002 | 002 rend le BIC facultatif |
| Jeu de caractères | 1 pour UTF-8, jusqu'à 8 | un chiffre |
| Identification | SCT | fixe, 3 caractères |
| BIC | identifiant de la banque bénéficiaire | 11 caractères, souvent omis |
| Nom du bénéficiaire | le titulaire du compte | 70 caractères |
| IBAN | compte du bénéficiaire | 34 caractères |
| Montant | EUR suivi de la valeur | 0,01 à 999999999,99, en EUR |
| Code motif | motif ISO, rarement utilisé | 4 caractères |
| Référence structurée | référence du créancier, ou | 35 caractères |
| Texte non structuré | texte libre de remise à la place | 140 caractères |
| Bénéficiaire vers donneur d'ordre | note affichée au payeur | 70 caractères |
Deux règles font trébucher les gens. La référence structurée et le texte non structuré s'excluent mutuellement : remplissez l'un, laissez l'autre vide. Et le montant est facultatif, ce qui est le bon choix pour un code de don où le payeur décide, et le mauvais choix pour une facture où vous voulez un montant exact prérempli.
L'ensemble du bloc est plafonné à 331 octets. Les directives EPC069-12 fixent aussi le niveau de correction d'erreur à M et plafonnent le symbole à la version 13, donc le code que vous imprimez a un plafond connu sur le nombre de modules. Si vous construisez cela en code plutôt qu'en cliquant sur un générateur, la documentation de la bibliothèque Segno montre l'ordre des champs et les règles d'encodage sous une forme que vous pouvez tester.
Pourquoi vous ne pouvez ni le raccourcir ni le suivre
Un code QR suivi fonctionne en encodant une URL que vous possédez. Le scan ouvre cette URL, votre redirection répond, vous comptez la requête, et le visiteur atterrit là où votre lien pointe actuellement. Codes QR dynamiques contre statiques couvre le mécanisme en détail.
Rien de tout cela ne s'applique ici. L'application bancaire n'est pas un navigateur. Elle analyse le texte, fait correspondre le format, et ouvre un formulaire de paiement localement sur l'appareil. Il n'y a aucune requête HTTP à intercepter, donc :
- Aucun comptage de scans n'existe, nulle part. Ni dans votre outil, ni dans celui de la banque.
- Rien ne peut être repointé. Un IBAN erroné signifie une réimpression.
- Envelopper la charge utile dans un lien court la casse net, car l'analyseur voit
httpslà où il attendBCD.
J'ai vu une équipe passer une semaine à essayer d'obtenir une attribution sur un code de paiement avant que quelqu'un ne lise la spécification. La réponse honnête est que le côté paiement et le côté mesure sont deux codes différents, et si la mise en page n'a de la place que pour un seul, c'est le code de paiement qui gagne.
Ce que vous pouvez mesurer, c'est tout ce qui l'entoure. Si un envoi postal porte une facture avec un code de paiement, mettez un lien court suivi séparé sur la lettre pour le portail client, les conditions, ou la page d'assistance, et lisez l'engagement à partir de là. Les fonctionnalités QR code d'Elido couvrent la moitié traçable de la feuille, et le code de paiement reste exactement conforme à ce qu'exige la norme.
Où ça fonctionne et où ça ne fonctionne pas
La prise en charge réside dans chaque application bancaire, ce qui explique pourquoi la couverture est inégale d'une manière que les listes par pays survendent. Les applications autrichiennes et allemandes lisent ces codes depuis des années, les applications finlandaises et néerlandaises sont globalement fiables, la prise en charge belge est bonne. Au-delà, testez avant de vous engager sur un tirage d'impression.
Deux voisins sont couramment confondus avec lui. Le QR-bill suisse est une spécification différente avec sa propre mise en page et une croix suisse au milieu du symbole ; ce n'est pas un code EPC et les applications de la zone euro ne le liront pas comme un paiement. Et un lien de paiement d'un prestataire de cartes n'a rien à voir : c'est une URL ordinaire dans un QR, avec un paiement hébergé au bout, et il se comporte comme n'importe quel autre lien web, suivi compris.
Pour la question plus large de ce qu'une entreprise réglementée de paiement ou de crédit peut présenter à ses clients, les raccourcisseurs d'URL pour la fintech couvre les parties où un lien intervient.
En produire un sans regret
Six vérifications, dans l'ordre où elles vous font économiser de l'argent.
- Validez l'IBAN avant la génération, pas après l'impression. Un test de somme de contrôle ne coûte rien, et une réimpression coûte tout un tirage.
- Décidez délibérément la question du montant. Fixe pour les factures, vide pour les affiches de don où n'importe quel montant doit être possible.
- Préférez la référence structurée au texte libre. Elle est plus courte, elle permet un rapprochement automatique dans votre comptabilité, et elle garde la charge utile réduite.
- Testez avec au moins trois applications bancaires, sur les deux plateformes de téléphone. Les analyseurs diffèrent dans la rigueur avec laquelle ils traitent les champs facultatifs.
- Dimensionnez le code imprimé pour la distance à laquelle il sera scanné, exactement comme pour n'importe quel autre code. Quelle taille doit avoir un code QR donne le calcul.
- Gardez-le mat. Un vernis brillant sur un code de paiement sur une facture sous un éclairage de bureau est un ticket d'assistance qui n'attend qu'à arriver.
Le problème de l'autocollant
Il existe un vecteur de fraude bien réel, et il est physique plutôt que numérique. Un code de paiement statique imprimé sur une facture, un horodateur, une pancarte de stand de marché ou une affiche caritative peut être recouvert d'un autocollant portant un IBAN différent. Rien dans le code ne résiste à cela, car la charge utile, c'est le papier.
Les mesures d'atténuation sont tout aussi physiques. Imprimez le code à l'intérieur de la mise en page de la facture, où une étiquette serait visible, plutôt que sur un patch adhésif. Affichez le nom du bénéficiaire et les derniers chiffres de l'IBAN en texte à côté du code, afin qu'un payeur puisse comparer. Et dans les instructions de confirmation de paiement, dites aux gens de lire le nom que leur application bancaire affiche avant de confirmer, car cet écran est le seul endroit où la substitution devient visible. Les codes QR sont-ils sûrs, et qu'est-ce que le quishing couvre le schéma d'attaque plus large, dont la plupart s'applique aux codes de lien que vous imprimez ailleurs sur la même page.
La partie rassurante : un paiement a toujours besoin qu'un humain le confirme dans une application bancaire authentifiée. Le code préremplit un formulaire, il ne déplace jamais d'argent.
Lisez la série pilier
Cet article s'inscrit dans le cluster fonctionnalités. Pour le flux d'impression autour de n'importe quel code que vous générez, une campagne de code QR de zéro est l'article pilier, et le guide des codes QR dans la documentation couvre la génération du type traçable via l'API.
Sur le blog
Questions fréquentes
Qu'est-ce qu'un code QR EPC ?
Un code QR qui encode les détails d'un virement SEPA sous forme de texte brut, afin qu'une application bancaire puisse le lire et préremplir le formulaire de virement. Il a été normalisé par le Conseil européen des paiements dans les directives EPC069-12 et est aussi connu sous le nom de GiroCode. La charge utile est une séquence fixe de lignes commençant par la balise de service BCD, et elle ne contient aucune adresse web.
Quels pays prennent en charge les paiements GiroCode ?
La prise en charge dépend de l'application bancaire, pas du pays, mais dans la pratique les codes sont largement lus en Autriche, en Allemagne, en Finlande, aux Pays-Bas et en Belgique. Ailleurs dans la zone euro, la couverture est inégale, et en dehors de celle-ci le code n'a aucun sens. La Suisse utilise sa propre norme QR-bill, qui ressemble à celle-ci mais n'est pas compatible.
Un code QR EPC peut-il être dynamique ou traçable ?
Non. Les détails du paiement sont à l'intérieur du motif imprimé, et le téléphone les décode hors ligne sans contacter aucun serveur, donc il n'y a rien à rediriger et rien à compter. Si vous devez changer le montant ou la référence, vous générez un nouveau code. Tout ce qu'on vous vend comme un QR de paiement dynamique est en réalité un lien vers une page de paiement, ce qui est un produit différent.
Que se passe-t-il si je mets un lien court dans un code QR EPC ?
L'application bancaire échoue à l'analyser et affiche une erreur, ou finit par traiter le code comme une URL ordinaire. L'analyseur attend que la première ligne soit BCD et la quatrième SCT ; une URL ne correspond à aucune des deux. Les codes QR de paiement et les codes QR de lien sont deux codes distincts qui partagent simplement la même forme de symbole.
Quelle taille la charge utile peut-elle atteindre ?
331 octets, ce qui plafonne le QR à la version 13 avec un niveau de correction d'erreur M selon les directives EPC. Dans la pratique, c'est le texte de remise qui la remplit, donc une longue référence en texte libre est le champ qui fait dépasser la limite à un code. Gardez la référence structurée et courte, et le code reste assez épuré pour être scanné depuis une facture imprimée.
Les codes QR de paiement sont-ils sûrs sur des factures imprimées ?
Le code lui-même ne transporte aucun contenu exécutable, et le payeur confirme le virement dans son application bancaire, qui affiche le nom du bénéficiaire et l'IBAN avant que rien ne bouge. Le vrai risque est physique : un autocollant placé sur le code imprimé redirigeant le paiement vers un autre compte. Imprimez le code à l'intérieur de la mise en page de la facture, pas sur une étiquette, et dites aux payeurs de vérifier le nom sur l'écran de confirmation.
Essayer Elido
Collez une URL, obtenez un lien court
Sans inscription. Lien actif 30 jours. Inscrivez-vous pour le garder pour toujours.
Gratuit, sans inscription · 2 par jour