UPI
UPI (Unified Payments Interface) es la plataforma de pagos instantáneos de India, operada por el National Payments Corporation of India (NPCI). Coexisten dos formatos QR: el esquema URI upi://pay simple (funciona en todas las apps UPI) y el NPCI BR Code, un subconjunto EMVCo MPM con Información de Cuenta del Comerciante (etiqueta 26) que lleva la VPA. UPI procesó más de 11 000 millones de transacciones al mes en 2024; todas las apps bancarias y de pago indias lo soportan.
Esquema URI:
upi://pay?pa=VPA&pn=NAME&am=AMT&cu=INR, el formato QR UPI más simple. Funciona en todas las apps UPI. Especificación padre:EMVCo MPM v1.1. UPI reserva la etiqueta de cuenta de comerciante
26 en el formato BR Code. Regulador:Reserve Bank of India (RBI), emite circulares UPI; NPCI es el operador.
Dos formatos QR
- Esquema URI upi://. Intención de pago codificada en URL simple. Usada por todos los QR UPI orientados al consumidor (pegatinas Paytm/Google Pay/PhonePe en pequeños comercios). Legible por todas las apps UPI.
- NPCI BR Code (EMVCo MPM). Formato codificado en TLV con etiqueta
26para Información de Cuenta de Comerciante UPI. Usado para QR unificados/interoperables (Bharat QR) y despliegues empresariales más grandes donde el QR puede llevar simultáneamente UPI + RuPay + tarjetas.
Parámetros del esquema URI upi://
| Parámetro | Nombre | Requerido | Notas |
|---|---|---|---|
pa | Dirección del beneficiario (VPA) | Sí | Formato: user@handle. Ejemplo: alice@oksbi, merchant@paytm. |
pn | Nombre del beneficiario | Sí | Codificado en URL. Mostrado al pagador para confirmación. |
am | Importe | No | Cadena decimal: 10.00. Omitir para QR estáticos de "introduce el importe". |
cu | Divisa | No | Siempre INR. UPI es solo INR por regulación. |
tn | Nota de transacción | No | Memo de texto libre mostrado al pagador, máx. 50 caracteres. |
tr | Referencia de transacción | No | ID proporcionado por el comerciante para conciliación. |
mc | Código de categoría de comerciante | No | MCC de 4 dígitos ISO 18245. Requerido para cuentas de comerciante, opcional para P2P. |
tid | ID de terminal | No | Identificador de terminal POS. |
url | URL de factura/producto | No | Enlace profundo que el pagador puede abrir tras el pago para obtener el recibo. |
NPCI BR Code, estructura de la etiqueta 26
Cuando un QR unificado usa el formato BR Code en lugar del upi:// simple, el payload específico de UPI reside en la etiqueta 26 como un TLV anidado:
| Sub-etiqueta | Nombre | Longitud | Notas |
|---|---|---|---|
00 | GUI, identificador único global | variable | Valor fijo upi.npci.org. Identifica el esquema como UPI. |
01 | VPA | variable | La dirección de pago virtual. Ejemplo: merchant@oksbi. |
02 | Código de comerciante | variable | Identificador de comerciante asignado por NPCI para conciliación con el adquiriente. |
Reglas de formato VPA
- Formato:
user@handle, un nombre de usuario seguido de@y un handle PSP que identifica al proveedor de servicios de pago. - Parte del nombre de usuario. 3–63 caracteres, alfanumérico más
.,-,_. Sin distinción de mayúsculas según la especificación, pero algunas apps lo tratan como sensible a mayúsculas (ver problemas). - Parte del handle. Asignado por PSP. Handles comunes:
@oksbi(SBI),@okicici(ICICI),@okhdfcbank(HDFC),@paytm(Paytm),@ybl(PhonePe → Yes Bank),@ibl(PhonePe → IDFC FIRST),@apl(Amazon Pay vía Axis). - Longitud total. Máx. ~50 caracteres incluyendo el
@. - Resolución. Al escanear, la app del pagador resuelve VPA → cuenta bancaria a través de NPCI. La resolución devuelve el nombre del titular de cuenta registrado, que la app del pagador muestra para confirmación.
Vector de prueba canónico, esquema URI upi://
VPA merchant@oksbi, nombre TEST MERCHANT, importe fijo ₹10.00, con referencia INV-2026-0001:
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&am=10.00&cu=INR&tn=Invoice%20INV-2026-0001&tr=INV-2026-0001Pegatina estática mínima "introduce el importe":
upi://pay?pa=merchant@oksbi&pn=TEST%20MERCHANT&cu=INRErrores comunes
- Sensibilidad a mayúsculas/minúsculas de VPA en la práctica. La especificación NPCI dice que VPA no distingue mayúsculas. En la práctica, algunas apps (PhonePe antiguo, Paytm) fallan con VPAs en mayúsculas mixtas. Emite siempre en minúsculas:
alice@oksbinoAlice@OKSBI. - Codificación URL del nombre del beneficiario. El parámetro
pnacepta espacios y caracteres acentuados, que deben estar codificados en porcentaje.TEST MERCHANT→TEST%20MERCHANT. Las apps que no decodifican correctamente muestran nombres garbled en la pantalla de confirmación. - La divisa debe ser INR. UPI es solo INR por regulación RBI. Cualquier otro valor de
cuse elimina silenciosamente o se rechaza. Los receptores internacionales requieren cumplimiento del Esquema de Remesas Liberalizado del RBI y no usan UPI. - El importe debe ser positivo.
am=0oam=-5es rechazado. Para QRs de "introduce el importe", omite el parámetroamcompletamente. - Símbolo ₹ en el importe. Nunca incluyas el símbolo de rupia o "Rs." en el valor de
am.am=10.00, noam=₹10.00. - Fraude por superposición en el TPV. Las pegatinas UPI físicas son un vector de fraude bien documentado en India. Un atacante pega una pegatina con su propia VPA sobre la del comerciante. Los circulares anti-fraude del RBI requieren que los comerciantes muestren la VPA esperada como texto impreso junto al QR para que los pagadores puedan verificar.
- GST + analogía 1099-K. Los ingresos comerciales de UPI cuentan para la presentación del GST. Los comerciantes con ingresos agregados que superen ₹20 lakh/año deben registrarse en el GST; los que superen ₹10 crore deben generar e-facturas en el Portal de Registro de Facturas del GST. Los datos de transacciones UPI se comparten con la Red GST (GSTN) para conciliación.
- Solicitud de inversión restringida. SEBI prohíbe UPI para solicitudes de valores no registradas. Los QR UPI que promocionen "rendimientos garantizados", preventa de tokens o esquemas MLM activan la aplicación de la SEBI.
- Normas de Protección al Consumidor (Comercio Electrónico). Un QR UPI impreso que acepta pagos es una oferta comercial bajo las Normas de Comercio Electrónico 2020. El comerciante debe mostrar la política de devolución junto al QR. Los pagos UPI son inmediatamente definitivos; los reembolsos deben iniciarse como un UPI push separado del comerciante de vuelta al pagador.
Compatibilidad de apps UPI
| App | upi:// URI | NPCI BR Code | Notas |
|---|---|---|---|
| Google Pay (Tez) | Sí | Sí | App UPI más grande por volumen. |
| PhonePe | Sí | Sí | Soporte UPI + BR Code completo. |
| Paytm | Sí | Sí | Soporte UPI completo + fallback de cartera Paytm propio. |
| Amazon Pay | Sí | Sí | A través de Axis Bank (handle @apl). |
| BHIM | Sí | Sí | Implementación de referencia de NPCI. Base segura para pruebas. |
| Todas las grandes apps bancarias (SBI YONO, ICICI iMobile, HDFC PayZapp, Axis Mobile) | Sí | Sí | Todos los bancos inscritos en UPI incluyen soporte UPI en su app de consumo. |
| Cámara iOS/Android genérica | Parcial | No | Las cámaras nativas analizan el esquema upi:// y ofrecen "Abrir en app UPI" en dispositivos más nuevos, pero no renderizan BR Code TLV directamente. |
Ver también
- /upi-qr-code/, el generador UPI con validación VPA y codificación
upi://en vivo. - /standards/emvco/, la especificación padre EMVCo MPM.
- /standards/pix/, PIX Brasil, el esquema hermano que también usa la etiqueta 26 de EMVCo.
- /standards/, volver al índice de estándares.