UPI
UPI (Unified Payments Interface) è il sistema di pagamenti istantanei dell'India, gestito dal National Payments Corporation of India (NPCI). Due formati QR coesistono: il semplice schema URI upi://pay (funziona in ogni app UPI) e l'NPCI BR Code, un sottoinsieme EMVCo MPM con Informazioni Account Commerciante (tag 26) che porta il VPA. UPI ha elaborato oltre 11 miliardi di transazioni al mese nel 2024; ogni app bancaria e di pagamento indiana lo supporta.
Schema URI:
upi://pay?pa=VPA&pn=NAME&am=AMT&cu=INR, il formato QR UPI più semplice. Funziona in ogni app UPI. Specifiche padre:EMVCo MPM v1.1. UPI riserva il tag account commerciante
26 nel formato BR Code. Autorità di regolazione:Reserve Bank of India (RBI), emette circolari UPI; NPCI è l'operatore.
Due formati QR
- Schema URI upi://. Semplice intenzione di pagamento codificata URL. Usata da ogni QR UPI rivolto ai consumatori (adesivi Paytm/Google Pay/PhonePe presso i piccoli commercianti). Leggibile da ogni app UPI.
- NPCI BR Code (EMVCo MPM). Formato codificato TLV con tag
26per le Informazioni Account Commerciante UPI. Usato per QR unificati/interoperabili (Bharat QR) e implementazioni enterprise più grandi dove il QR può portare simultaneamente UPI + RuPay + carte.
Parametri dello schema URI upi://
| Parametro | Nome | Obbligatorio | Note |
|---|---|---|---|
pa | Indirizzo beneficiario (VPA) | Sì | Formato: user@handle. Esempio: alice@oksbi, merchant@paytm. |
pn | Nome beneficiario | Sì | Codificato URL. Mostrato al pagante per conferma. |
am | Importo | No | Stringa decimale: 10.00. Omettere per QR statici "inserisci importo". |
cu | Valuta | No | Sempre INR. UPI è solo INR per regolamento. |
tn | Nota transazione | No | Memo testo libero mostrato al pagante, max. 50 caratteri. |
tr | Riferimento transazione | No | ID fornito dal commerciante per la riconciliazione. |
mc | Codice categoria commerciante | No | MCC ISO 18245 a 4 cifre. Obbligatorio per gli account commercianti, opzionale per P2P. |
tid | ID terminale | No | Identificatore terminale POS. |
url | URL fattura/prodotto | No | Deep link che il pagante può aprire dopo il pagamento per recuperare la ricevuta. |
NPCI BR Code, struttura tag 26
Quando un QR unificato usa il formato BR Code invece del semplice upi://, il payload specifico UPI risiede nel tag 26 come TLV annidato:
| Sub-tag | Nome | Lunghezza | Note |
|---|---|---|---|
00 | GUI, identificatore univoco globale | variabile | Valore fisso upi.npci.org. Identifica lo schema come UPI. |
01 | VPA | variabile | L'indirizzo di pagamento virtuale. Esempio: merchant@oksbi. |
02 | Codice commerciante | variabile | Identificatore commerciante assegnato da NPCI per la riconciliazione acquirer. |
Regole formato VPA
- Formato:
user@handle, un nome utente seguito da@e un handle PSP che identifica il fornitore di servizi di pagamento. - Parte nome utente. 3–63 caratteri, alfanumerico più
.,-,_. Non sensibile alle maiuscole secondo le specifiche, ma alcune app lo trattano come sensibile alle maiuscole (vedi insidie). - Parte handle. Assegnato da PSP. Handle comuni:
@oksbi(SBI),@okicici(ICICI),@okhdfcbank(HDFC),@paytm(Paytm),@ybl(PhonePe → Yes Bank),@ibl(PhonePe → IDFC FIRST),@apl(Amazon Pay via Axis). - Lunghezza totale. Max. ~50 caratteri incluso
@. - Risoluzione. Alla scansione, l'app del pagante risolve VPA → conto bancario tramite NPCI. La risoluzione restituisce il nome del titolare del conto registrato, che l'app del pagante visualizza per la conferma.
Vettore di test canonico, schema URI upi://
VPA merchant@oksbi, nome TEST MERCHANT, importo fisso ₹10.00, con riferimento INV-2026-0001:
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&am=10.00&cu=INR&tn=Invoice%20INV-2026-0001&tr=INV-2026-0001Adesivo statico minimale "inserisci importo":
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&cu=INRInsidie comuni
- Sensibilità alle maiuscole/minuscole dei VPA in pratica. Le specifiche NPCI dicono che VPA non è sensibile alle maiuscole. In pratica alcune app (PhonePe più vecchio, Paytm) falliscono con VPA a caso misto. Emetti sempre in minuscolo:
alice@oksbinonAlice@OKSBI. - Codifica URL del nome del beneficiario. Il parametro
pnaccetta spazi e caratteri accentati, che devono essere percent-encodati.TEST MERCHANT→TEST%20MERCHANT. Le app che non decodificano correttamente mostrano nomi corrotti nella schermata di conferma. - La valuta deve essere INR. UPI è solo INR per regolamento RBI. Qualsiasi altro valore di
cuviene silenziosamente eliminato o rifiutato. I destinatari internazionali richiedono la conformità allo Schema di Rimesse Liberalizzate della RBI e non usano UPI. - L'importo deve essere positivo.
am=0oam=-5viene rifiutato. Per i QR "inserisci importo", ometti completamente il parametroam. - Simbolo ₹ nell'importo. Non includere mai il simbolo della rupia o "Rs." nel valore di
am.am=10.00, nonam=₹10.00. - Frode da sovrapposizione al POS. Gli adesivi UPI fisici sono un vettore di frode ben documentato in India. Un attaccante incolla un adesivo con il proprio VPA sopra quello del commerciante. Le circolari anti-frode della RBI richiedono che i commercianti mostrino il VPA atteso come testo stampato accanto al QR affinché i paganti possano verificare.
- GST + analogia 1099-K. Le ricevute commerciali UPI contano per la dichiarazione GST. I commercianti con ricevute aggregate superiori a ₹20 lakh/anno devono registrarsi per il GST; quelli oltre ₹10 crore devono generare e-fatture sul portale di Registrazione Fatture GST. I dati delle transazioni UPI vengono condivisi con la Rete GST (GSTN) per la riconciliazione.
- Sollecitazione di investimenti limitata. SEBI vieta l'UPI per la sollecitazione di titoli non registrati. I QR UPI che promuovono "rendimenti garantiti", prevendite di token o schemi MLM attivano l'applicazione della SEBI.
- Regole di tutela dei consumatori (e-commerce). Un QR UPI stampato che accetta pagamenti è un'offerta commerciale ai sensi delle Regole e-commerce 2020. Il commerciante deve mostrare la politica di rimborso accanto al QR. I pagamenti UPI sono immediatamente definitivi; i rimborsi devono essere avviati come UPI push separato dal commerciante di ritorno al pagante.
Compatibilità delle app UPI
| App | upi:// URI | NPCI BR Code | Note |
|---|---|---|---|
| Google Pay (Tez) | Sì | Sì | La più grande app UPI per volume. |
| PhonePe | Sì | Sì | Supporto UPI + BR Code completo. |
| Paytm | Sì | Sì | Supporto UPI completo + fallback portafoglio Paytm proprio. |
| Amazon Pay | Sì | Sì | Tramite Axis Bank (handle @apl). |
| BHIM | Sì | Sì | Implementazione di riferimento NPCI. Base sicura per i test. |
| Tutte le grandi app bancarie (SBI YONO, ICICI iMobile, HDFC PayZapp, Axis Mobile) | Sì | Sì | Tutte le banche iscritte UPI forniscono supporto UPI nella loro app consumer. |
| Fotocamera iOS/Android generica | Parziale | No | Le fotocamere native analizzano lo schema upi:// e offrono "Apri nell'app UPI" su dispositivi più recenti, ma non rendono direttamente il BR Code TLV. |
Vedi anche
- /upi-qr-code/, il generatore UPI con validazione VPA e codifica
upi://in tempo reale. - /standards/emvco/, le specifiche padre EMVCo MPM.
- /standards/pix/, PIX Brasile, lo schema gemello che usa anche il tag 26 di EMVCo.
- /standards/, torna all'indice degli standard.