Che cosa copre la specifica EMV QR
La specifica del codice QR EMV di EMVCo definisce come i dati di pagamento sono disposti dentro un normale codice QR. Esiste in due modalità. Nella Merchant-Presented Mode (MPM) l'esercente mostra un codice e il cliente lo scansiona con un'app bancaria o di portafoglio. Nella Consumer-Presented Mode (CPM) è l'app del cliente a mostrare un codice e l'esercente lo scansiona alla cassa.
La specifica non crea una rete di pagamento. È un formato di dati condiviso, così un circuito nazionale o un circuito di carte può aggiungere i propri dati di conto mantenendo uguale il resto del payload. Per questo Pix in Brasile, PromptPay in Thailandia, SGQR a Singapore, DuitNow in Malesia, QRIS in Indonesia, VietQR in Vietnam e Bharat QR in India si assomigliano tutti nella struttura.
Come è strutturato il payload
Un payload MPM è una stringa di oggetti dati, ciascuno scritto come un ID di due cifre, una lunghezza di due cifre e il valore. Per esempio, 5303840 significa ID 53 (valuta della transazione), lunghezza 03, valore 840 (dollari statunitensi in forma numerica ISO 4217). Gli oggetti si susseguono senza separatori, e alcuni ID sono modelli che contengono oggetti annidati nello stesso formato.
Il payload deve iniziare con l'ID 00 e finire con l'ID 63, un checksum. Il checksum è un valore CRC-16/CCITT-FALSE scritto come quattro caratteri esadecimali, calcolato su tutto ciò che lo precede, compresi i caratteri 6304. Uno scanner che calcola un checksum diverso rifiuta il codice, il che intercetta la maggior parte degli errori di battitura o di copia.
- 00: indicatore del formato del payload, sempre 01
- 01: punto di avvio, 11 per statico o 12 per dinamico
- 26–51: modelli di informazioni sul conto dell'esercente
- 52: codice di categoria merceologica (MCC)
- 53: valuta (ISO 4217 numerico) e 54: importo
- 58: codice del Paese, 59: nome dell'esercente, 60: città
- 62: dati aggiuntivi come un numero di fattura o di riferimento; 63: CRC
Codici statici e dinamici
Un codice QR EMV statico (punto di avvio 11) si stampa una volta e si riusa, e il cliente digita l'importo. Un codice dinamico (punto di avvio 12) è generato per una singola transazione e di solito contiene l'importo e un riferimento, così il cliente deve solo confermare. Gli adesivi da banco stampati sono di solito statici, mentre i codici sullo schermo di una cassa o su una fattura sono di solito dinamici.