UPI
UPI (Unified Payments Interface) to indyjska platforma natychmiastowych płatności prowadzona przez National Payments Corporation of India (NPCI). Istnieją dwa formaty QR: prosty schemat URI upi://pay (prosty, działa w każdej aplikacji UPI) i NPCI BR Code, podzbiór EMVCo MPM z Merchant Account Information (tag 26) niosącym VPA. Do 2024 r. UPI przetwarzał ponad 11 miliardów transakcji miesięcznie; każda indyjska aplikacja bankowa i płatnicza go obsługuje.
Schemat URI:
upi://pay?pa=VPA&pn=NAME&am=AMT&cu=INR, najprostszy format UPI QR. Działa w każdej aplikacji UPI. Nadrzędna specyfikacja:EMVCo MPM v1.1. UPI rezerwuje tag konta sprzedawcy
26 w formacie BR Code. Regulator:Reserve Bank of India (RBI), wydaje okólniki UPI; NPCI jest operatorem.
Dwa formaty QR
- Schemat URI upi://. Prosta, zakodowana w URL intencja płatności. Używana przez każdy konsumencki kod UPI QR (naklejki Paytm/Google Pay/PhonePe u małych sprzedawców). Odczytywana przez każdą aplikację UPI.
- NPCI BR Code (EMVCo MPM). Format zakodowany w TLV z tagiem
26dla informacji o koncie sprzedawcy UPI. Używany dla zunifikowanych/interoperacyjnych kodów QR (Bharat QR) i większych wdrożeń korporacyjnych, gdzie QR może jednocześnie zawierać UPI + RuPay + karty.
Parametry schematu URI upi://
| Parametr | Nazwa | Wymagany | Uwagi |
|---|---|---|---|
pa | Adres odbiorcy (VPA) | Tak | Format: user@handle. Przykład: alice@oksbi, merchant@paytm. |
pn | Nazwa odbiorcy | Tak | Zakodowana URL. Wyświetlana płatnikowi do potwierdzenia. |
am | Kwota | Nie | Ciąg dziesiętny: 10.00. Pomiń dla statycznych kodów QR "wpisz kwotę". |
cu | Waluta | Nie | Zawsze INR. UPI jest wyłącznie INR zgodnie z regulacją. |
tn | Notatka transakcji | Nie | Notatka w dowolnym tekście wyświetlana płatnikowi, maks. 50 znaków. |
tr | Odniesienie transakcji | Nie | ID dostarczone przez sprzedawcę do uzgadniania. |
mc | Kod kategorii sprzedawcy | Nie | 4-cyfrowy MCC ISO 18245. Wymagany dla kont handlowych, opcjonalny dla P2P. |
tid | ID terminalu | Nie | Identyfikator terminalu POS. |
url | URL faktury/produktu | Nie | Głęboki link, który płatnik może otworzyć po płatności, aby pobrać paragon. |
NPCI BR Code, struktura tagu 26
Gdy zunifikowany kod QR używa formatu BR Code zamiast zwykłego upi://, ładunek specyficzny dla UPI znajduje się w tagu 26 jako zagnieżdżone TLV:
| Pod-tag | Nazwa | Długość | Uwagi |
|---|---|---|---|
00 | GUI, globalny unikalny identyfikator | zmienna | Stała wartość upi.npci.org. Identyfikuje schemat jako UPI. |
01 | VPA | zmienna | Wirtualny adres płatności. Przykład: merchant@oksbi. |
02 | Kod sprzedawcy | zmienna | Identyfikator sprzedawcy przydzielony przez NPCI do uzgadniania z acquirerem. |
Zasady formatu VPA
- Format:
user@handle, nazwa użytkownika, po której następuje@i handle PSP identyfikujący dostawcę usług płatniczych. - Część nazwy użytkownika. 3–63 znaków, alfanumeryczne plus
.,-,_. Nieuwzględniające wielkości liter zgodnie ze specyfikacją, ale niektóre aplikacje traktują je jako uwzględniające wielkość liter (patrz pułapki). - Część handle. Przydzielona przez PSP. Popularne handles:
@oksbi(SBI),@okicici(ICICI),@okhdfcbank(HDFC),@paytm(Paytm),@ybl(PhonePe → Yes Bank),@ibl(PhonePe → IDFC FIRST),@apl(Amazon Pay via Axis). - Łączna długość. Maks. ~50 znaków wliczając
@. - Rozwiązanie. Przy skanowaniu aplikacja płatnika rozwiązuje VPA → konto bankowe przez NPCI. Rozwiązanie zwraca imię i nazwisko zarejestrowanego właściciela konta, które aplikacja płatnika wyświetla do potwierdzenia.
Kanoniczny wektor testowy, schemat URI upi://
VPA merchant@oksbi, nazwa TEST MERCHANT, stała kwota ₹10.00, z referencją INV-2026-0001:
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&am=10.00&cu=INR&tn=Invoice%20INV-2026-0001&tr=INV-2026-0001Minimalna statyczna naklejka "wpisz kwotę":
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&cu=INRTypowe pułapki
- Wrażliwość na wielkość liter VPA w praktyce. Specyfikacja NPCI mówi, że VPA nie jest wrażliwe na wielkość liter. W praktyce niektóre aplikacje (starszy PhonePe, Paytm) zawodzą przy VPA z mieszanymi literami. Zawsze emituj małe litery:
alice@oksbinieAlice@OKSBI. - Kodowanie URL nazwy odbiorcy. Parametr
pnprzyjmuje spacje i znaki akcentowane, które muszą być kodowane procentowo.TEST MERCHANT→TEST%20MERCHANT. Aplikacje, które nie dekodują poprawnie, pokazują zniekształcone nazwy na ekranie potwierdzenia. - Waluta musi być INR. UPI jest wyłącznie INR zgodnie z regulacją RBI. Każda inna wartość
cujest cicho odrzucana. Odbiorcy zagraniczni wymagają zgodności z RBI Liberalised Remittance Scheme i nie używają UPI. - Kwota musi być dodatnia.
am=0lubam=-5jest odrzucane. Dla kodów QR "wpisz kwotę" całkowicie pomiń parametram. - Symbol ₹ w kwocie. Nigdy nie umieszczaj symbolu rupii ani "Rs." w wartości
am.am=10.00, nieam=₹10.00. - Naklejkowe oszustwo przy POS. Fizyczne naklejki UPI są udokumentowanym wektorem oszustw w Indiach. Atakujący przyklejają naklejkę ze swoim VPA na naklejkę sprzedawcy. Okólniki antyoszukańcze RBI wymagają, aby sprzedawcy wyświetlali oczekiwane VPA jako wydrukowany tekst obok kodu QR, aby płatnicy mogli zweryfikować.
- GST + odpowiednik 1099-K. Komercyjne paragony UPI liczą się do złożenia deklaracji GST. Sprzedawcy z łącznymi paragonami przekraczającymi ₹20 lakh/rok muszą zarejestrować się do GST; ci przekraczający ₹10 crore muszą generować e-faktury w portalu rejestracji faktur GST. Dane transakcji UPI są udostępniane sieci GST (GSTN) do uzgadniania.
- Pozyskiwanie inwestycji ograniczone. SEBI zabrania UPI do niezarejestrowanego pozyskiwania papierów wartościowych. Kody UPI QR promujące "gwarantowane zwroty", przedsprzedaże tokenów lub schematy MLM uruchamiają egzekwowanie SEBI.
- Zasady ochrony konsumentów (e-commerce). Wydrukowany kod QR UPI akceptujący płatności jest ofertą handlową na mocy przepisów e-commerce z 2020 r. Sprzedawca musi wyświetlać politykę zwrotów obok kodu QR. Płatności UPI są natychmiastowo ostateczne; zwroty muszą być inicjowane jako oddzielny UPI push od sprzedawcy z powrotem do płatnika.
Kompatybilność aplikacji UPI
| Aplikacja | upi:// URI | NPCI BR Code | Uwagi |
|---|---|---|---|
| Google Pay (Tez) | Tak | Tak | Największa aplikacja UPI pod względem wolumenu. |
| PhonePe | Tak | Tak | Pełne wsparcie UPI + BR Code. |
| Paytm | Tak | Tak | Pełne UPI + własny fallback portfela Paytm. |
| Amazon Pay | Tak | Tak | Przez Axis Bank (handle @apl). |
| BHIM | Tak | Tak | Implementacja referencyjna NPCI. Bezpieczna linia bazowa do testowania. |
| Każda główna aplikacja bankowa (SBI YONO, ICICI iMobile, HDFC PayZapp, Axis Mobile) | Tak | Tak | Wszystkie banki zarejestrowane w UPI dostarczają obsługę UPI w swojej aplikacji konsumenckiej. |
| Ogólny aparat iOS/Android | Częściowo | Nie | Natywne aparaty analizują schemat upi:// i oferują "Otwórz w aplikacji UPI" na nowszych urządzeniach, ale nie renderują bezpośrednio BR Code TLV. |
Zobacz też
- /upi-qr-code/, generator UPI z walidacją VPA i kodowaniem
upi://na żywo. - /standards/emvco/, nadrzędna specyfikacja EMVCo MPM.
- /standards/pix/, PIX Brazylia, siostrzany schemat również używający tagu 26 EMVCo.
- /standards/, powrót do indeksu standardów.