UPI
UPI (Unified Payments Interface) is India's instantbetalingsrail, beheerd door de National Payments Corporation of India (NPCI). Twee QR-formaten bestaan naast elkaar: het eenvoudige upi://pay-URI-schema (eenvoudig, werkt in elke UPI-app) en de NPCI BR Code, een EMVCo MPM-subset met Merchant Account Information (tag 26) die de VPA draagt. UPI verwerkte meer dan 11 miljard transacties per maand in 2024; elke Indiase bank- en betalingsapp ondersteunt het.
URI-schema:
upi://pay?pa=VPA&pn=NAME&am=AMT&cu=INR, het eenvoudigste UPI QR-formaat. Werkt in elke UPI-app. Bovenliggende specificatie:EMVCo MPM v1.1. UPI reserveert handelarenkontotag
26 in het BR Code-formaat. Toezichthouder:Reserve Bank of India (RBI), geeft UPI-circulaires uit; NPCI is de exploitant.
Twee QR-formaten
- upi://-URI-schema. Eenvoudige URL-gecodeerde betalingsbedoeling. Gebruikt door elke consumentgerichte UPI QR (Paytm/Google Pay/PhonePe-stickers bij kleine handelaars). Leesbaar door elke UPI-app.
- NPCI BR Code (EMVCo MPM). TLV-gecodeerd formaat met tag
26voor UPI Merchant Account Information. Gebruikt voor geünificeerde/interoperabele QR-codes (Bharat QR) en grotere enterprise-implementaties waarbij de QR tegelijkertijd UPI + RuPay + kaarten kan dragen.
upi://-URI-schema, parameters
| Parameter | Naam | Vereist | Opmerkingen |
|---|---|---|---|
pa | Begunstigdeadres (VPA) | Ja | Formaat: user@handle. Voorbeeld: alice@oksbi, merchant@paytm. |
pn | Naam begunstigde | Ja | URL-gecodeerd. Weergegeven aan betaler voor bevestiging. |
am | Bedrag | Nee | Decimale tekenreeks: 10.00. Weglaten voor statische "voer bedrag in" QR. |
cu | Valuta | Nee | Altijd INR. UPI is INR-only per regelgeving. |
tn | Transactieopmerking | Nee | Vrije-tekst memo weergegeven aan betaler, max. 50 tekens. |
tr | Transactiereferentie | Nee | Door handelaar verstrekt ID voor afstemming. |
mc | Handelaarscategoriecode | Nee | 4-cijferige ISO 18245 MCC. Verplicht voor handelaarsaccounts, optioneel voor P2P. |
tid | Terminal-ID | Nee | POS-terminalidentificator. |
url | Factuur/product-URL | Nee | Diepe koppeling die de betaler na betaling kan openen om de bon op te halen. |
NPCI BR Code, tag 26-structuur
Wanneer een geünificeerde QR het BR Code-formaat gebruikt in plaats van het gewone upi://, bevindt de UPI-specifieke payload zich in tag 26 als geneste TLV:
| Sub-tag | Naam | Lengte | Opmerkingen |
|---|---|---|---|
00 | GUI, Globale Unieke Identificator | variabel | Vaste waarde upi.npci.org. Identificeert het schema als UPI. |
01 | VPA | variabel | Het virtuele betalingsadres. Voorbeeld: merchant@oksbi. |
02 | Handelaarscode | variabel | NPCI-toegewezen handelaarsidentificator voor acquirer-afstemming. |
VPA-formaatregels
- Formaat:
user@handle, een gebruikersnaam gevolgd door@en een PSP-handle die de betalingsdienstverlener identificeert. - Gebruikersnaamdeel. 3–63 tekens, alfanumeriek plus
.,-,_. Niet hoofdlettergevoelig per specificatie, maar sommige apps behandelen het als hoofdlettergevoelig (zie valkuilen). - Handle-deel. PSP-toegewezen. Veelgebruikte handles:
@oksbi(SBI),@okicici(ICICI),@okhdfcbank(HDFC),@paytm(Paytm),@ybl(PhonePe → Yes Bank),@ibl(PhonePe → IDFC FIRST),@apl(Amazon Pay via Axis). - Totale lengte. Max. ~50 tekens inclusief de
@. - Oplossing. Bij scannen lost de app van de betaler VPA → bankrekening op via NPCI. De oplossing geeft de naam van de geregistreerde rekeninghouder terug, die de app van de betaler ter bevestiging weergeeft.
Kanonieke testvektor, upi://-URI-schema
VPA merchant@oksbi, naam TEST MERCHANT, vast bedrag ₹10.00, met referentie INV-2026-0001:
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&am=10.00&cu=INR&tn=Invoice%20INV-2026-0001&tr=INV-2026-0001Minimale statische "voer bedrag in" sticker:
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&cu=INRVeelvoorkomende valkuilen
- VPA-hoofdlettergevoeligheid in de praktijk. De NPCI-specificatie zegt dat VPA niet hoofdlettergevoelig is. In de praktijk falen sommige apps (oudere PhonePe, Paytm) bij VPA's met gemengde hoofdletters. Gebruik altijd kleine letters:
alice@oksbinietAlice@OKSBI. - URL-codering van begunstigde naam. De parameter
pnaccepteert spaties en geaccentueerde tekens, die procentgecodeerd moeten zijn.TEST MERCHANT→TEST%20MERCHANT. Apps die niet correct decoderen tonen verminkte namen op het bevestigingsscherm. - Valuta moet INR zijn. UPI is INR-only per RBI-regelgeving. Elke andere
cu-waarde wordt stil weggegooid of afgewezen. Internationale ontvangers vereisen naleving van het RBI Liberalised Remittance Scheme en gebruiken geen UPI. - Bedrag moet positief zijn.
am=0ofam=-5wordt afgewezen. Voor QR-codes "voer bedrag in" laat u de parameteramvolledig weg. - ₹-symbool in het bedrag. Neem nooit het rupee-symbool of "Rs." op in de
am-waarde.am=10.00, nietam=₹10.00. - Overlay-fraude bij POS. Fysieke UPI-stickers zijn een gedocumenteerde fraudevector in India. Een aanvaller plakt een sticker met zijn eigen VPA over die van de handelaar. RBI-antifraude-circulaires verplichten handelaars de verwachte VPA als gedrukte tekst naast de QR te tonen zodat betalers kunnen verifiëren.
- GST + 1099-K-analogie. UPI commerciële bonnen tellen mee voor de GST-aangifte. Handelaars met totale bonnen boven ₹20 lakh/jaar moeten zich registreren voor GST; die boven ₹10 crore moeten e-facturen genereren op het GST Invoice Registration Portal. UPI-transactiegegevens worden gedeeld met het GST-netwerk (GSTN) voor afstemming.
- Investeringsverzoek beperkt. SEBI verbiedt UPI voor niet-geregistreerde effectenwerving. UPI QR-codes die "gegarandeerde rendementen", token-voorverkopen of MLM-regelingen promoten, activeren SEBI-handhaving.
- Consumentenbescherming (e-commerce) regels. Een gedrukte UPI QR die betalingen accepteert is een commercieel aanbod onder de e-commerceregels 2020. De handelaar moet het terugbetalingsbeleid naast de QR tonen. UPI-betalingen zijn direct definitief; terugbetalingen moeten worden gestart als afzonderlijke UPI-push van de handelaar terug naar de betaler.
UPI-app-compatibiliteit
| App | upi:// URI | NPCI BR Code | Opmerkingen |
|---|---|---|---|
| Google Pay (Tez) | Ja | Ja | Grootste UPI-app per volume. |
| PhonePe | Ja | Ja | Volledige UPI + BR Code-ondersteuning. |
| Paytm | Ja | Ja | Volledige UPI + eigen Paytm-portemonnee-fallback. |
| Amazon Pay | Ja | Ja | Via Axis Bank (@apl-handle). |
| BHIM | Ja | Ja | Referentie-implementatie van NPCI. Veilige basislijn voor testen. |
| Alle grote bankapps (SBI YONO, ICICI iMobile, HDFC PayZapp, Axis Mobile) | Ja | Ja | Alle UPI-geregistreerde banken leveren UPI-ondersteuning in hun consumentenapp. |
| Generieke iOS/Android-camera | Gedeeltelijk | Nee | Native camera's parsen het upi://-schema en bieden "Openen in UPI-app" op nieuwere apparaten, maar renderen geen BR Code TLV rechtstreeks. |
Zie ook
- /upi-qr-code/, de UPI-generator met VPA-validatie en live
upi://-codering. - /standards/emvco/, de bovenliggende EMVCo MPM-specificatie.
- /standards/pix/, PIX Brazilië, het zusterschema dat ook EMVCo-tag 26 gebruikt.
- /standards/, terug naar de standaardenindex.