Какво покрива спецификацията EMV QR
Спецификацията EMV QR code на EMVCo определя как платежните данни се подреждат в обикновен QR код. Тя има два режима. В режим „показван от търговеца“ (Merchant-Presented Mode, MPM) търговецът показва код, а клиентът го сканира с банково приложение или портфейл. В режим „показван от потребителя“ (Consumer-Presented Mode, CPM) приложението на клиента показва код, а търговецът го сканира на касата.
Спецификацията не създава платежна мрежа. Тя е общ формат на данните, така че национална схема или картова мрежа може да добави собствени данни за сметка, като запази останалата част от съдържанието същата. Затова Pix в Бразилия, PromptPay в Тайланд, SGQR в Сингапур, DuitNow в Малайзия, QRIS в Индонезия, VietQR във Виетнам и Bharat QR в Индия изглеждат структурно сходни.
Как е структурирано съдържанието
Съдържанието на MPM е низ от обекти с данни, всеки записан като двуцифрен ID, двуцифрена дължина и стойност. Например 5303840 означава ID 53 (валута на транзакцията), дължина 03, стойност 840 (щатски долари в цифров вид по ISO 4217). Обектите следват един след друг без разделители, а някои ID са шаблони, които съдържат собствени вложени обекти в същия формат.
Съдържанието трябва да започва с ID 00 и да завършва с ID 63 – контролна сума. Контролната сума е стойност CRC-16/CCITT-FALSE, записана като четири шестнадесетични знака и изчислена върху всичко преди нея, включително знаците 6304. Скенер, който изчисли различна контролна сума, отхвърля кода, което улавя повечето грешки при въвеждане или копиране.
- 00: индикатор на формата на данните, винаги 01
- 01: начин на иницииране, 11 за статичен или 12 за динамичен
- 26–51: шаблони за информация за сметката на търговеца
- 52: код на категорията на търговеца (MCC)
- 53: валута (цифров код по ISO 4217) и 54: сума
- 58: код на държавата, 59: име на търговеца, 60: град
- 62: допълнителни данни като сметка или референтен номер; 63: CRC
Статични и динамични кодове
Статичният EMV QR код (начин на иницииране 11) се отпечатва веднъж и се използва многократно, а клиентът въвежда сумата. Динамичният код (начин на иницииране 12) се генерира за една транзакция и обикновено носи сумата и референция, така че клиентът само потвърждава. Отпечатаните стикери на гишето обикновено са статични, докато кодовете на екран на касата или във фактура обикновено са динамични.