Vad EMV QR-specifikationen omfattar
EMV QR-kodspecifikationen från EMVCo definierar hur betalningsdata läggs upp i en vanlig QR-kod. Den finns i två lägen. I Merchant-Presented Mode (MPM) visar handlaren en kod som kunden skannar med en bank- eller plånboksapp. I Consumer-Presented Mode (CPM) visar kundens app en kod som handlaren skannar i kassan.
Specifikationen skapar inget betalningsnät. Den är ett gemensamt dataformat, så ett nationellt system eller ett kortnätverk kan lägga till sina egna kontouppgifter medan resten av nyttolasten förblir densamma. Det är därför Pix i Brasilien, PromptPay i Thailand, SGQR i Singapore, DuitNow i Malaysia, QRIS i Indonesien, VietQR i Vietnam och Bharat QR i Indien alla ser strukturellt lika ut.
Hur nyttolasten är uppbyggd
En MPM-nyttolast är en sträng av dataobjekt, vart och ett skrivet som ett tvåsiffrigt ID, en tvåsiffrig längd och värdet. Till exempel betyder 5303840 ID 53 (transaktionsvaluta), längd 03, värde 840 (US-dollar i numerisk ISO 4217-form). Objekten följer på varandra utan avskiljare, och vissa ID:n är mallar som innehåller egna nästlade objekt i samma format.
Nyttolasten måste börja med ID 00 och sluta med ID 63, en kontrollsumma. Kontrollsumman är ett CRC-16/CCITT-FALSE-värde skrivet som fyra hexadecimala tecken, beräknat över allt före den inklusive tecknen 6304. En skanner som räknar fram en annan kontrollsumma avvisar koden, vilket fångar de flesta skriv- eller kopieringsfel.
- 00: indikator för nyttolastformat, alltid 01
- 01: initieringssätt, 11 för statisk eller 12 för dynamisk
- 26–51: mallar för handlarens kontoinformation
- 52: handlarens branschkod (MCC)
- 53: valuta (numerisk ISO 4217) och 54: belopp
- 58: landskod, 59: handlarens namn, 60: ort
- 62: tilläggsdata som ett faktura- eller referensnummer; 63: CRC
Statiska och dynamiska koder
En statisk EMV QR-kod (initieringssätt 11) trycks en gång och återanvänds, och kunden skriver in beloppet. En dynamisk kod (initieringssätt 12) genereras för en enda transaktion och bär oftast beloppet och en referens, så kunden behöver bara bekräfta. Tryckta disklappar är vanligtvis statiska, medan koder på en kassaskärm eller en faktura vanligtvis är dynamiska.