Tecnologia QR code: come funziona il pagamento digitale
6' 8''
04/11/2025

I pagamenti tramite QR code sono ormai parte della vita quotidiana, ma come funzionano? Scopriamo la tecnologia dietro questi codici e gli standard EMVCo e JPQR.

QR code: come funziona il pagamento digitale

Il pagamento istantaneo con un semplice QR Code è ormai parte integrante della nostra quotidianità, ma pochi si soffermano a riflettere sulla complessità tecnologica nascosta dietro quei semplici quadratini bianchi e neri. Quello che a prima vista appare come un banale pattern geometrico rappresenta in realtà un sofisticato sistema di codifica delle informazioni finanziarie, capace di trasformare una semplice immagine stampata in un efficace strumento di transazione monetaria. La chiave di questo fenomeno risiede negli standard internazionali come l'EMVCo e nelle normative nazionali come il JPQR giapponese, che definiscono con precisione come i dati necessari al pagamento debbano essere strutturati e incorporati nel codice.

Il cuore del sistema: un indirizzo, non un portafoglio

La ragione fondamentale per cui un QR Code può funzionare come strumento di pagamento è che non contiene denaro né valore intrinseco. La sua vera natura è quella di un "indirizzo con istruzioni", una sorta di lettera di accompagnamento che comunica al sistema di pagamento informazioni essenziali: chi paga, chi riceve, quanto viene trasferito. Quando l'utente inquadra il codice con la fotocamera dello smartphone, l'applicazione di pagamento estrae istantaneamente dal pattern grafico una stringa di caratteri contenente l'identificativo del commerciante, il tipo di rete di pagamento da utilizzare, l'importo della transazione, la valuta e altri dati necessari per tracciare l'operazione.

Questi dati vengono poi inviati ai server che gestiscono le diverse infrastrutture finanziarie – che si tratti di circuiti delle carte di credito, bonifici bancari o reti proprietarie – i quali procedono con l'autenticazione, la verifica del credito disponibile e l'addebito immediato. Il QR Code funge quindi da semplice punto di ingresso nel processo di pagamento, senza mai custodire direttamente fondi o informazioni sensibili permanenti. Il vantaggio principale di questo approccio è la sua straordinaria flessibilità operativa: non sono necessari cavi, terminali dedicati o hardware complesso; basta stampare il codice su carta per accettare pagamenti.

Statici o dinamici: le due anime del QR

Nella progettazione dei sistemi di pagamento basati su QR Code esistono due assi principali di classificazione. Il primo distingue i codici "statici" da quelli "dinamici" in base alla loro capacità di aggiornamento. Un codice statico, una volta generato e stampato, può essere riutilizzato indefinitamente: contiene informazioni fisse sul destinatario del pagamento, mentre l'importo viene inserito manualmente dall'utente nell'app oppure generato dal server. Questa soluzione è ideale per piccoli esercizi commerciali, bancarelle o per la raccolta di donazioni, dove la semplicità operativa è prioritaria.

I codici dinamici, al contrario, vengono generati in tempo reale per ogni singola transazione, incorporando l'importo esatto, il numero d'ordine e spesso anche una data di scadenza molto ravvicinata. Questa tipologia risulta particolarmente efficace quando il sistema di cassa deve comunicare con precisione l'importo da pagare, come nei ristoranti o nell'e-commerce, e offre un livello di sicurezza significativamente superiore. Limitare la validità del codice a pochi minuti riduce drasticamente il rischio che uno screenshot possa essere utilizzato fraudolentemente da terzi.

Il QR Code è un indirizzo, non un portafoglio digitale

MPM e CPM: chi mostra il codice a chi

Il secondo asse di classificazione riguarda chi presenta il codice durante la transazione. Nel modello MPM (Merchant-Presented Mode), il più diffuso, è il commerciante a esporre il QR Code al punto vendita e il cliente a scansionarlo con il proprio smartphone. Questa modalità è stata standardizzata a livello internazionale dall'EMVCo e adattata in Giappone con lo standard JPQR, che permette a più operatori di pagamento di coesistere su un unico codice. Nel modello CPM (Consumer-Presented Mode), invece, è l'utente a generare e mostrare il codice sullo schermo del telefono, mentre il negoziante lo scansiona con un lettore fisso. Quest'ultima modalità è preferita in contesti come i negozi di convenience store o i tornelli dei mezzi pubblici, dove è necessaria una lettura rapida e automatizzata.

La struttura TLV: l'alfabeto dei pagamenti digitali

All'interno del QR Code MPM, i dati sono organizzati secondo una struttura definita TLV (Tag-Length-Value), un formato estremamente razionale che permette ai software di analizzare le informazioni in modo sequenziale e preciso. Ogni elemento è composto da tre parti: un identificatore numerico (Tag) che indica il tipo di dato, una cifra che ne specifica la lunghezza (Length) e il dato vero e proprio (Value). Questo sistema modulare consente di aggiungere o rimuovere informazioni senza compromettere la leggibilità dell'intero messaggio.

Il payload inizia sempre con il tag "00" che identifica la conformità allo standard EMVCo, seguito dal tag "01" che specifica se il codice è statico o dinamico. I tag compresi tra "26" e "51" sono riservati alle informazioni specifiche di ciascun operatore di pagamento, mentre quelli successivi contengono dati universali: il tag "52" indica il codice merceologico del commerciante, il "53" la valuta (per lo yen giapponese è "392" secondo lo standard ISO 4217), il "54" l'importo, e così via fino ai tag "58", "59" e "60" che identificano rispettivamente il paese, il nome del negozio e la città.

Il tag "62" è particolarmente versatile: al suo interno possono essere inseriti dati aggiuntivi come il numero di scontrino, l'identificativo del terminale o il codice di riferimento della transazione, tutti strutturati a loro volta in formato TLV. Infine, alla fine del payload si trova il tag "63", che contiene un checksum CRC a 16 bit calcolato sull'intera stringa di dati. Questo valore permette all'applicazione di verificare immediatamente che le informazioni non siano state alterate o corrotte durante la lettura.

Dal testo all'immagine: generazione e sicurezza

Il processo di creazione del QR Code si articola in tre fasi principali. Nella prima viene costruita la stringa di dati secondo la struttura TLV appena descritta. Nella seconda fase si calcola il valore CRC che garantisce l'integrità dell'informazione: la stringa completa viene processata con l'algoritmo CRC-16/CCITT-FALSE e il risultato, espresso in quattro cifre esadecimali maiuscole, viene inserito al posto di un valore temporaneo inizialmente impostato a "0000". Solo dopo questa verifica il payload è considerato completo e pronto per l'ultima fase: la conversione in simbolo grafico secondo lo standard internazionale ISO/IEC 18004.

Durante la codifica grafica, il sistema sceglie il livello di correzione degli errori più appropriato tra quattro opzioni (L, M, Q, H), ognuna delle quali offre una capacità crescente di recuperare informazioni anche in caso di danneggiamento parziale del codice, ma a costo di una maggiore complessità visiva. Per i pagamenti si preferisce solitamente il livello M o Q, che bilancia leggibilità e robustezza. È fondamentale mantenere le dimensioni del payload entro poche centinaia di byte per garantire che il codice rimanga facilmente scansionabile anche da fotocamere di qualità modesta o a distanza.

Sul fronte della sicurezza operativa, la scelta tra codice statico e dinamico ha implicazioni concrete. I codici statici semplificano la gestione ma richiedono aggiornamenti manuali in caso di cambi di prezzo, mentre quelli dinamici assicurano precisione ma necessitano di una sincronizzazione costante con i sistemi di gestione degli ordini. Un rischio concreto è rappresentato dagli "attacchi overlay", in cui codici fraudolenti vengono sovrapposti a quelli legittimi: per contrastarli è indispensabile educare gli utenti a verificare sempre il nome del commerciante visualizzato nell'app, utilizzare codici con elementi grafici distintivi e implementare controlli lato server che impediscano pagamenti duplicati o basati su codici scaduti.

In definitiva, la tecnologia alla base dei pagamenti tramite QR Code è il risultato di un'ingegneria precisa che combina standard di codifica universali, algoritmi di verifica dell'integrità, gestione intelligente della correzione degli errori e strategie di sicurezza multilivello. Solo attraverso questa integrazione di competenze tecniche e procedure operative si riesce a trasformare un semplice foglio di carta stampato in uno strumento di pagamento affidabile, sicuro e accessibile a tutti, capace di supportare milioni di transazioni quotidiane in contesti commerciali di ogni tipo e dimensione.

Fonte: cio.com

Condividi questo contenuto