Les Codes 2D de la Migros, édition 2022

Ticket Migros

Il y a neuf ans, j’avais publié un billet sur les codes bares de la Migros. Malgré son âge, cet article voit encore pas mal de traffic – relativement au reste de ce blog, s’entend. Depuis, la Migros a changé ses tickets, qui utilisent à présent un code 2D. Creusons un peu.

Le code est format Aztec (ISO/IEC 24778:2008), ainsi nommé à cause la pyramide en son centre. On peut le décoder avec une app, mais le contenu est retranscrit verbatim sous le code. La Migros utilise les mêmes codes pour représenter la carte Cumulus. Les 4 premiers chiffres semblent être une forme de préambule ou un numéro d’application, tous mes tickets semblent commencer par la séquence 0101. Les 7 chiffres suivants, 0150653 représentent le numéro de filiale, suivi par le numéro de caisse sur 3 chiffres, ici 081.

Vient ensuite la date de la transaction 010922; personnellement, j’aurais encodé la date au format ISO 8601, mais voilà. Le numéro de ticket est encodé sur les 4 positions qui suivent. J’ai trouvé ça étonnant, car le format précédent réservait 5 position pour le numéro de transaction. 4 position suffisent probablement pour les tickets d’une caisse donnée, si on assume qu’elle est ouverte 12 heures par jours (08:00 – 20:00), il faudrait une transaction toutes les 25 secondes pour dépasser les 9999 transactions. Si ça se trouve, le numéro de caisse change lorsqu’une caisse est fermée et réouverte, ou quand le/la caissier/ère change. D’un autre côté, vu les capacités des codes 2D, l’économie d’une position n’était pas réellement nécessaire (comme l’encodage de l’année sur deux positions).

010101506530810109220031000003490

Enfin vient la somme totale, en centimes, sur 9 chiffres, soit un chiffre de plus qu’avec le format précédent, on peut à présent faire des courses pour près de 10 millions à la Migros. C’est ça le progrès (ou l’inflation).

Ce qui est intéressant, c’est que la malgré le passage à un format 2D, le code contient très peu d’information, fondamentalement de quoi identifier la transaction et le total. Toutes les autres informations sont conservées dans le système de la Migros, vu qu’elle peut reconstruire le ticket dans son intégralité, y compris les 4 dernières positions (au moins) de ma carte de payment. L’image qui illustre ce billet n’est pas un scan tu ticket, mais une capture d’écran de la reconstruction dans l’App de la Migros.

La seule différence par rapport à la version papier est le logo, qui était le logo de Kaimug (la chaîne de restaurant Thaï de la Migros). Le fait qu’il y a peu d’information dans le code n’est pas évident, car le code Aztec de la carte Cumulus contient bien plus que les 13 positions du code Cumulus, il y 48 caractères avec une partie au moins qui semble être encodée au format Base-64. Je n’ai pas encore réussi à décoder ce format là…

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.