Co obejmuje specyfikacja EMV QR
Specyfikacja kodu EMV QR od EMVCo określa, jak dane płatnicze są ułożone wewnątrz zwykłego kodu QR. Występuje w dwóch trybach. W trybie prezentowanym przez sprzedawcę (MPM) sprzedawca wyświetla kod, a klient skanuje go aplikacją bankową lub portfelem. W trybie prezentowanym przez konsumenta (CPM) aplikacja klienta pokazuje kod, a sprzedawca skanuje go przy kasie.
Specyfikacja nie tworzy sieci płatniczej. To wspólny format danych, więc system krajowy albo sieć kartowa może dodać własne dane konta, zachowując resztę zawartości bez zmian. Dlatego Pix w Brazylii, PromptPay w Tajlandii, SGQR w Singapurze, DuitNow w Malezji, QRIS w Indonezji, VietQR w Wietnamie i Bharat QR w Indiach wyglądają strukturalnie podobnie.
Jak zbudowana jest zawartość
Zawartość MPM to ciąg obiektów danych, z których każdy jest zapisany jako dwucyfrowy identyfikator, dwucyfrowa długość i wartość. Na przykład 5303840 oznacza identyfikator 53 (waluta transakcji), długość 03, wartość 840 (dolary amerykańskie w numerycznym zapisie ISO 4217). Obiekty następują jeden po drugim bez separatorów, a niektóre identyfikatory to szablony zawierające własne zagnieżdżone obiekty w tym samym formacie.
Zawartość musi zaczynać się od identyfikatora 00 i kończyć identyfikatorem 63, czyli sumą kontrolną. Suma kontrolna to wartość CRC-16/CCITT-FALSE zapisana czterema znakami szesnastkowymi, obliczona z wszystkiego, co jest przed nią, łącznie ze znakami 6304. Skaner, który obliczy inną sumę kontrolną, odrzuca kod, co wychwytuje większość błędów wpisywania lub kopiowania.
- 00: wskaźnik formatu danych, zawsze 01
- 01: sposób inicjacji, 11 dla statycznego lub 12 dla dynamicznego
- 26–51: szablony informacji o koncie sprzedawcy
- 52: kod kategorii sprzedawcy (MCC)
- 53: waluta (numeryczny ISO 4217) i 54: kwota
- 58: kod kraju, 59: nazwa sprzedawcy, 60: miasto
- 62: dane dodatkowe, jak numer rachunku lub referencyjny; 63: CRC
Kody statyczne i dynamiczne
Statyczny kod EMV QR (sposób inicjacji 11) drukuje się raz i używa wielokrotnie, a klient wpisuje kwotę. Kod dynamiczny (sposób inicjacji 12) jest generowany dla jednej transakcji i zwykle niesie kwotę oraz numer referencyjny, więc klient tylko potwierdza. Drukowane naklejki na ladzie są zwykle statyczne, a kody na ekranie kasy albo fakturze zwykle dynamiczne.