QR commerçant EMVCo

La spécification de code QR EMVCo est le format encodé en TLV qui sous-tend la plupart des systèmes de paiement mobile nationaux, PIX (Brésil), PromptPay (Thaïlande), UPI (Inde), SGQR (Singapour), DuitNow (Malaisie), BPS PayNow (Singapour), et bien d'autres. Comprendre le format de base EMVCo, c'est comprendre une douzaine de variantes régionales à la fois.

Spécification canonique :Spécification de code QR EMV pour les systèmes de paiement, Mode présenté par le marchand v1.1 (2020) et Mode présenté par le consommateur v1.1 (2020).
Encodage : TLV (Balise-Longueur-Valeur) avec balises à 2 chiffres, longueurs à 2 chiffres, valeur variable. Remorque CRC16-CCITT pour l'intégrité.

Mode marchand vs mode consommateur

Structure MPM

Le payload MPM est une séquence plate d'enregistrements TLV terminée par un CRC :

BaliseNomLongueurNotes
00Indicateur de format de payload2Toujours 01.
01Méthode de point d'initiation211 statique / 12 dynamique.
0251Informations sur le compte marchandvariableSpécifique au schéma. Chaque schéma réserve sa propre balise : PIX utilise 26, UPI utilise aussi 26, SGQR utilise 51.
52Code de catégorie marchand (MCC)4Code ISO 18245 à 4 chiffres. Voir tableau ci-dessous.
53Devise de transaction3ISO 4217 numérique. 840=USD, 978=EUR, 356=INR, 986=BRL, 764=THB.
54Montant de la transactionvariableDécimal en chaîne. Omettre pour les QR statiques avec montant au scan.
58Code pays2ISO 3166 alpha-2.
59Nom du marchandvariableMax 25 caractères selon la spec ; beaucoup de schémas assouplissent cela.
60Ville du marchandvariableMax 15 caractères.
62Modèle de champ de données supplémentairesvariableRéférence de facture, fidélité, ID de terminal.
63CRC4CRC16-CCITT sur tout ce qui précède cette balise (y compris la balise elle-même, longueur 04, moins la valeur à 4 chiffres).

Schémas régionaux dérivés d'EMVCo

SchémaPaysBalise de compte marchandNotes
PIXBrésil26Schéma de paiement instantané de la Banque centrale du Brésil. Ajoute des clés PIX CPF/CNPJ/email/téléphone comme sous-TLVs sous la balise 26.
PromptPayThaïlande29 / 30Utilise 29 pour l'ID national/fiscal et 30 pour le numéro mobile.
UPIInde26Même base EMVCo avec sous-TLVs spécifiques à UPI (VPA, nom du bénéficiaire).
SGQRSingapour51QR unifié qui encode plusieurs rails de paiement (PayNow, NETS, UOB Pay) simultanément.
DuitNowMalaisie27Schéma de paiement instantané national de PayNet.
FPSHong Kong27Système de paiement rapide de HKICL.
JPQRJapon50Standard QR japonais unifié soutenu par METI.

Codes MCC courants

MCCCatégorie de marchand
5411Épiceries, supermarchés
5812Restaurants
5814Restauration rapide
5999Commerce de détail divers
7230Salons de beauté / coiffeurs
8011Médecins
8398Organisations caritatives / de service social
0000Inconnu / espace réservé (la spec l'autorise)

Vecteurs de test canoniques

CasEntréesEn-tête TLV attendu
MPM statique, USD, sans montantmerchant=Acme Corp
city=LAS VEGAS
country=US
currency=840
mcc=5999
00020101021152045999...53037405802US5909Acme Corp6009LAS VEGAS
MPM dynamique, EUR, montant 25.00(même)
amount=25.00
Commence par 000201010212 (méthode POI 12 = dynamique), inclut 540525.00.
Addition restaurant, INR 250, MCC 5812merchant=Spice House
city=MUMBAI
country=IN
currency=356
mcc=5812
amount=250
Champ MCC : 52045812. Devise : 5303356.

Pièges courants

Compatibilité avec les scanners

App / appareilSupportNotes
App bancaire / portefeuilleNatifLes apps régionales dans chaque pays (Nubank / apps UPI / TrueMoney / GrabPay) traitent le payload EMVCo nativement.
Caméra iOSChaîne bruteNon reconnu comme paiement. L'utilisateur doit ouvrir son app bancaire et scanner depuis là.
Caméra AndroidChaîne bruteIdem, non traité.
Google LensChaîne bruteAffiche le texte décodé.
Terminaux de paiement industrielsNatifLes scanners POS modernes incluent le traitement EMVCo dans le firmware pour les schémas régionaux qu'ils supportent.

Voir aussi

Version de spec vérifiée le 2026-04-18 (EMVCo MPM v1.1 / CPM v1.1). Prochaine révision : 2026-07-18.