Hva EMV QR-spesifikasjonen dekker
EMV QR-kodespesifikasjonen fra EMVCo definerer hvordan betalingsdata legges opp inne i en vanlig QR-kode. Den finnes i to moduser. I Merchant-Presented Mode (MPM) viser selgeren en kode som kunden skanner med en bank- eller lommebokapp. I Consumer-Presented Mode (CPM) viser kundens app en kode som selgeren skanner i kassen.
Spesifikasjonen skaper ikke noe betalingsnettverk. Det er et felles dataformat, så en nasjonal ordning eller et kortnettverk kan legge til sine egne kontodetaljer mens resten av innholdet forblir det samme. Derfor ser Pix i Brasil, PromptPay i Thailand, SGQR i Singapore, DuitNow i Malaysia, QRIS i Indonesia, VietQR i Vietnam og Bharat QR i India alle like ut i oppbygningen.
Hvordan innholdet er bygget opp
Et MPM-innhold er en streng av dataobjekter, hvert skrevet som en ID på to sifre, en lengde på to sifre og verdien. For eksempel betyr 5303840 ID 53 (transaksjonsvaluta), lengde 03, verdi 840 (amerikanske dollar i numerisk ISO 4217-form). Objektene følger hverandre uten skilletegn, og noen ID-er er maler som inneholder egne nestede objekter i samme format.
Innholdet må begynne med ID 00 og slutte med ID 63, en sjekksum. Sjekksummen er en CRC-16/CCITT-FALSE-verdi skrevet som fire heksadesimale tegn, beregnet over alt foran den, inkludert tegnene 6304. En skanner som regner ut en annen sjekksum, avviser koden, og det fanger opp de fleste skrive- eller kopieringsfeil.
- 00: formatindikator for innholdet, alltid 01
- 01: initieringsmåte, 11 for statisk eller 12 for dynamisk
- 26–51: maler for selgerens kontoopplysninger
- 52: selgerens kategorikode (MCC)
- 53: valuta (numerisk ISO 4217) og 54: beløp
- 58: landkode, 59: selgerens navn, 60: by
- 62: tilleggsdata som regnings- eller referansenummer, 63: CRC
Statiske og dynamiske koder
En statisk EMV QR-kode (initieringsmåte 11) trykkes én gang og brukes om igjen, og kunden skriver inn beløpet. En dynamisk kode (initieringsmåte 12) lages for én enkelt transaksjon og bærer vanligvis beløpet og en referanse, så kunden bare bekrefter. Trykte klistremerker på disken er vanligvis statiske, mens koder på en betalingsskjerm eller en faktura vanligvis er dynamiske.