UPI
UPI (Unified Payments Interface), индийская инфраструктура мгновенных платежей, управляемая National Payments Corporation of India (NPCI). Сосуществуют два формата QR: простая URI-схема upi://pay (работает в каждом UPI-приложении) и NPCI BR Code, подмножество EMVCo MPM с информацией о торговом счёте (тег 26), несущей VPA. К 2024 году UPI обрабатывал более 11 миллиардов транзакций в месяц; каждое индийское банковское и платёжное приложение поддерживает его.
URI-схема:
upi://pay?pa=VPA&pn=NAME&am=AMT&cu=INR, простейший формат UPI QR. Работает в каждом UPI-приложении. Родительская спецификация:EMVCo MPM v1.1. UPI резервирует тег торгового счёта
26 в формате BR Code. Регулятор:Резервный банк Индии (RBI), выпускает UPI-циркуляры; NPCI является оператором.
Два формата QR
- URI-схема upi://. Простое URL-закодированное платёжное намерение. Используется каждым потребительским UPI QR (наклейки Paytm/Google Pay/PhonePe у малых торговцев). Читается каждым UPI-приложением.
- NPCI BR Code (EMVCo MPM). TLV-закодированный формат с тегом
26для информации о торговом счёте UPI. Используется для унифицированных/совместимых QR (Bharat QR) и более крупных корпоративных развёртываний, где QR может одновременно нести UPI + RuPay + карты.
Параметры URI-схемы upi://
| Параметр | Название | Обязательный | Примечания |
|---|---|---|---|
pa | Адрес получателя (VPA) | Да | Формат: user@handle. Пример: alice@oksbi, merchant@paytm. |
pn | Имя получателя | Да | URL-закодировано. Отображается плательщику для подтверждения. |
am | Сумма | Нет | Десятичная строка: 10.00. Опустить для статических QR "введите сумму". |
cu | Валюта | Нет | Всегда INR. UPI только INR по регуляции. |
tn | Примечание к транзакции | Нет | Произвольный текст, отображаемый плательщику, макс. 50 символов. |
tr | Ссылка на транзакцию | Нет | Идентификатор, предоставленный торговцем, для сверки. |
mc | Код категории торговца | Нет | 4-значный ISO 18245 MCC. Обязателен для торговых счетов, опционален для P2P. |
tid | Идентификатор терминала | Нет | Идентификатор POS-терминала. |
url | URL счёта/продукта | Нет | Глубокая ссылка, которую плательщик может открыть после оплаты для получения квитанции. |
NPCI BR Code, структура тега 26
Когда унифицированный QR использует формат BR Code вместо простого upi://, специфичная для UPI полезная нагрузка находится в теге 26 в виде вложенного TLV:
| Подтег | Название | Длина | Примечания |
|---|---|---|---|
00 | GUI, глобальный уникальный идентификатор | переменная | Фиксированное значение upi.npci.org. Идентифицирует схему как UPI. |
01 | VPA | переменная | Виртуальный платёжный адрес. Пример: merchant@oksbi. |
02 | Код торговца | переменная | Идентификатор торговца, присвоенный NPCI, для сверки с эквайером. |
Правила формата VPA
- Формат:
user@handle, имя пользователя, за которым следует@и дескриптор PSP, идентифицирующий поставщика платёжных услуг. - Часть имени пользователя. 3–63 символа, буквенно-цифровые плюс
.,-,_. По спецификации не чувствителен к регистру, но некоторые приложения обрабатывают его как чувствительный к регистру (см. подводные камни). - Часть дескриптора. Присваивается PSP. Распространённые дескрипторы:
@oksbi(SBI),@okicici(ICICI),@okhdfcbank(HDFC),@paytm(Paytm),@ybl(PhonePe → Yes Bank),@ibl(PhonePe → IDFC FIRST),@apl(Amazon Pay через Axis). - Общая длина. Максимум ~50 символов включая
@. - Разрешение. При сканировании приложение плательщика разрешает VPA → банковский счёт через NPCI. Разрешение возвращает имя зарегистрированного владельца счёта, которое приложение плательщика отображает для подтверждения.
Канонический тестовый вектор, URI-схема upi://
VPA merchant@oksbi, имя TEST MERCHANT, фиксированная сумма ₹10.00, с ссылкой INV-2026-0001:
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&am=10.00&cu=INR&tn=Invoice%20INV-2026-0001&tr=INV-2026-0001Минимальная статическая наклейка "введите сумму":
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&cu=INRТипичные ошибки
- Чувствительность VPA к регистру на практике. Спецификация NPCI говорит, что VPA нечувствителен к регистру. На практике некоторые приложения (старый PhonePe, Paytm) не работают с VPA в смешанном регистре. Всегда генерируйте строчные буквы:
alice@oksbi, а неAlice@OKSBI. - URL-кодировка имени получателя. Параметр
pnпринимает пробелы и символы с диакритикой, которые должны быть закодированы в процентах.TEST MERCHANT→TEST%20MERCHANT. Приложения, не декодирующие правильно, отображают искажённые имена на экране подтверждения. - Валюта должна быть INR. UPI только INR по регуляции RBI. Любое другое значение
cuтихо отбрасывается или отклоняется. Международным получателям требуется соответствие RBI Liberalised Remittance Scheme, и они не используют UPI. - Сумма должна быть положительной.
am=0илиam=-5отклоняется. Для QR "введите сумму" полностью опустите параметрam. - Символ ₹ в сумме. Никогда не включайте символ рупии или "Rs." в значение
am.am=10.00, неam=₹10.00. - Мошенничество с заменой наклеек на POS. Физические UPI-наклейки, задокументированный вектор мошенничества в Индии. Злоумышленник наклеивает поверх наклейки торговца свою с собственным VPA. Антимошеннические циркуляры RBI обязывают торговцев отображать ожидаемый VPA в виде печатного текста рядом с QR, чтобы плательщики могли его проверить.
- GST + аналог 1099-K. Коммерческие квитанции UPI учитываются при подаче декларации GST. Торговцы с совокупными поступлениями свыше ₹20 лакхов/год должны зарегистрироваться по GST; превышающие ₹10 крор должны генерировать электронные счета на портале регистрации счетов GST. Данные транзакций UPI передаются в сеть GST (GSTN) для сверки.
- Инвестиционное предложение ограничено. SEBI запрещает UPI для незарегистрированного привлечения ценных бумаг. QR UPI, рекламирующие "гарантированную доходность", предпродажи токенов или MLM-схемы, вызывают применение санкций SEBI.
- Правила защиты потребителей (электронная коммерция). Напечатанный QR UPI, принимающий платежи, является коммерческим предложением по Правилам электронной коммерции 2020. Торговец должен отображать политику возврата рядом с QR. Платежи UPI немедленно окончательны; возвраты должны инициироваться как отдельный UPI-push от торговца плательщику.
Совместимость приложений UPI
| Приложение | upi:// URI | NPCI BR Code | Примечания |
|---|---|---|---|
| Google Pay (Tez) | Да | Да | Крупнейшее UPI-приложение по объёму. |
| PhonePe | Да | Да | Полная поддержка UPI + BR Code. |
| Paytm | Да | Да | Полный UPI + собственный резервный вариант кошелька Paytm. |
| Amazon Pay | Да | Да | Через Axis Bank (дескриптор @apl). |
| BHIM | Да | Да | Эталонная реализация NPCI. Безопасная базовая линия для тестирования. |
| Все крупные банковские приложения (SBI YONO, ICICI iMobile, HDFC PayZapp, Axis Mobile) | Да | Да | Все банки, зарегистрированные в UPI, поставляют поддержку UPI в своём потребительском приложении. |
| Стандартная камера iOS/Android | Частично | Нет | Встроенные камеры разбирают схему upi:// и предлагают "Открыть в UPI-приложении" на новых устройствах, но не отображают BR Code TLV напрямую. |
Смотрите также
- /upi-qr-code/, генератор UPI с валидацией VPA и живым кодированием
upi://. - /standards/emvco/, родительская спецификация EMVCo MPM.
- /standards/pix/, PIX Бразилия, родственная схема, также использующая тег 26 EMVCo.
- /standards/, назад к индексу стандартов.