UPI
UPI (Unified Payments Interface) est le rail de paiement instantané indien, opéré par le National Payments Corporation of India (NPCI). Deux formats QR coexistent : le schéma URI upi://pay simple (fonctionne dans chaque app UPI) et le NPCI BR Code, un sous-ensemble EMVCo MPM avec les Informations de Compte Marchand (tag 26) portant la VPA. UPI a traité plus de 11 milliards de transactions par mois en 2024 ; toutes les apps bancaires et de paiement indiennes le supportent.
Schéma URI :
upi://pay?pa=VPA&pn=NAME&am=AMT&cu=INR, le format QR UPI le plus simple. Fonctionne dans chaque app UPI. Spécification parente :EMVCo MPM v1.1. UPI réserve le tag de compte marchand
26 au format BR Code. Régulateur :Reserve Bank of India (RBI), émet des circulaires UPI ; NPCI est l'opérateur.
Deux formats QR
- Schéma URI upi://. Intention de paiement simple encodée en URL. Utilisée par chaque QR UPI grand public (autocollants Paytm/Google Pay/PhonePe chez les petits commerçants). Lisible par chaque app UPI.
- NPCI BR Code (EMVCo MPM). Format encodé en TLV avec le tag
26pour les Informations de Compte Marchand UPI. Utilisé pour les QR unifiés/interopérables (Bharat QR) et les déploiements d'entreprise plus importants où le QR peut simultanément porter UPI + RuPay + cartes.
Paramètres du schéma URI upi://
| Paramètre | Nom | Requis | Notes |
|---|---|---|---|
pa | Adresse du bénéficiaire (VPA) | Oui | Format : user@handle. Exemple : alice@oksbi, merchant@paytm. |
pn | Nom du bénéficiaire | Oui | Encodé en URL. Affiché au payeur pour confirmation. |
am | Montant | Non | Chaîne décimale : 10.00. Omettre pour les QR statiques "saisir le montant". |
cu | Devise | Non | Toujours INR. UPI est INR uniquement par réglementation. |
tn | Note de transaction | Non | Mémo texte libre affiché au payeur, max. 50 caractères. |
tr | Référence de transaction | Non | ID fourni par le marchand pour la réconciliation. |
mc | Code de catégorie marchand | Non | MCC ISO 18245 à 4 chiffres. Obligatoire pour les comptes marchands, optionnel pour P2P. |
tid | ID de terminal | Non | Identifiant du terminal POS. |
url | URL de facture/produit | Non | Lien profond que le payeur peut ouvrir après le paiement pour récupérer le reçu. |
NPCI BR Code, structure du tag 26
Quand un QR unifié utilise le format BR Code plutôt que le simple upi://, la charge utile spécifique UPI réside dans le tag 26 sous forme de TLV imbriqué :
| Sous-tag | Nom | Longueur | Notes |
|---|---|---|---|
00 | GUI, identifiant unique mondial | variable | Valeur fixe upi.npci.org. Identifie le schéma comme UPI. |
01 | VPA | variable | L'adresse de paiement virtuelle. Exemple : merchant@oksbi. |
02 | Code marchand | variable | Identifiant marchand attribué par NPCI pour la réconciliation avec l'acquéreur. |
Règles de format VPA
- Format :
user@handle, un nom d'utilisateur suivi de@et d'un handle PSP identifiant le prestataire de services de paiement. - Partie nom d'utilisateur. 3–63 caractères, alphanumérique plus
.,-,_. Non sensible à la casse selon la spec, mais certaines apps le traitent comme sensible à la casse (voir pièges). - Partie handle. Attribué par PSP. Handles courants :
@oksbi(SBI),@okicici(ICICI),@okhdfcbank(HDFC),@paytm(Paytm),@ybl(PhonePe → Yes Bank),@ibl(PhonePe → IDFC FIRST),@apl(Amazon Pay via Axis). - Longueur totale. Max. ~50 caractères incluant le
@. - Résolution. Lors du scan, l'app du payeur résout VPA → compte bancaire via NPCI. La résolution renvoie le nom du titulaire de compte enregistré, que l'app du payeur affiche pour confirmation.
Vecteur de test canonique, schéma URI upi://
VPA merchant@oksbi, nom TEST MERCHANT, montant fixe ₹10.00, avec référence INV-2026-0001 :
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&am=10.00&cu=INR&tn=Invoice%20INV-2026-0001&tr=INV-2026-0001Autocollant statique minimal "saisir le montant" :
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&cu=INRPièges courants
- Sensibilité à la casse des VPA en pratique. La spec NPCI dit que VPA est insensible à la casse. En pratique, certaines apps (anciens PhonePe, Paytm) échouent sur les VPA en casse mixte. Émettez toujours en minuscules :
alice@oksbipasAlice@OKSBI. - Encodage URL du nom du bénéficiaire. Le paramètre
pnaccepte les espaces et les caractères accentués, qui doivent être percent-encodés.TEST MERCHANT→TEST%20MERCHANT. Les apps qui ne décodent pas correctement affichent des noms tronqués sur l'écran de confirmation. - La devise doit être INR. UPI est INR uniquement par réglementation RBI. Toute autre valeur
cuest silencieusement supprimée ou rejetée. Les destinataires internationaux nécessitent la conformité au Liberalised Remittance Scheme du RBI et n'utilisent pas UPI. - Le montant doit être positif.
am=0ouam=-5est rejeté. Pour les QR "saisir le montant", omettez entièrement le paramètream. - Symbole ₹ dans le montant. N'incluez jamais le symbole roupie ou "Rs." dans la valeur
am.am=10.00, pasam=₹10.00. - Fraude par superposition au POS. Les autocollants UPI physiques sont un vecteur de fraude bien documenté en Inde. Un attaquant colle un autocollant avec sa propre VPA sur celle du marchand. Les circulaires anti-fraude de la RBI exigent que les marchands affichent la VPA attendue en texte imprimé à côté du QR pour que les payeurs puissent vérifier.
- GST + analogie 1099-K. Les recettes commerciales UPI comptent pour la déclaration GST. Les marchands dont les recettes agrégées dépassent ₹20 lakh/an doivent s'inscrire à la GST ; ceux dépassant ₹10 crore doivent générer des e-factures sur le portail d'enregistrement des factures GST. Les données de transaction UPI sont partagées avec le Réseau GST (GSTN) pour la réconciliation.
- Sollicitation d'investissement restreinte. SEBI interdit UPI pour la sollicitation de valeurs mobilières non enregistrées. Les QR UPI faisant la promotion de "rendements garantis", de préventes de tokens ou de systèmes MLM déclenchent l'application SEBI.
- Règles de protection des consommateurs (e-commerce). Un QR UPI imprimé acceptant des paiements est une offre commerciale en vertu des Règles e-commerce 2020. Le marchand doit afficher la politique de remboursement à côté du QR. Les paiements UPI sont immédiatement définitifs ; les remboursements doivent être initiés comme un UPI push séparé du marchand vers le payeur.
Compatibilité des apps UPI
| App | upi:// URI | NPCI BR Code | Notes |
|---|---|---|---|
| Google Pay (Tez) | Oui | Oui | La plus grande app UPI par volume. |
| PhonePe | Oui | Oui | Support UPI + BR Code complet. |
| Paytm | Oui | Oui | Support UPI complet + fallback portefeuille Paytm propre. |
| Amazon Pay | Oui | Oui | Via Axis Bank (handle @apl). |
| BHIM | Oui | Oui | Implémentation de référence NPCI. Base sûre pour les tests. |
| Toutes les grandes apps bancaires (SBI YONO, ICICI iMobile, HDFC PayZapp, Axis Mobile) | Oui | Oui | Toutes les banques inscrites UPI livrent le support UPI dans leur app grand public. |
| Caméra iOS/Android générique | Partiel | Non | Les caméras natives parsent le schéma upi:// et proposent "Ouvrir dans l'app UPI" sur les appareils récents, mais ne rendent pas le BR Code TLV directement. |
Voir aussi
- /upi-qr-code/, le générateur UPI avec validation VPA et encodage
upi://en direct. - /standards/emvco/, la spec parente EMVCo MPM.
- /standards/pix/, PIX Brésil, le schéma jumeau qui utilise aussi le tag 26 d'EMVCo.
- /standards/, retour à l'index des standards.