QR de comerciante EMVCo

La especificación de código QR de EMVCo es el formato TLV que subyace a la mayoría de los sistemas nacionales de pago móvil: PIX (Brasil), PromptPay (Tailandia), UPI (India), SGQR (Singapur), DuitNow (Malasia), BPS PayNow (Singapur) y muchos más. Entender el formato base EMVCo significa entender una docena de derivados regionales a la vez.

Canonical spec:EMV QR Code Specification for Payment Systems, Merchant Presented Mode v1.1 (2020) and Consumer Presented Mode v1.1 (2020).
Encoding: TLV (Tag-Length-Value) with 2-digit tags, 2-digit lengths, variable value. CRC16-CCITT trailer for integrity.

Merchant Presented vs Consumer Presented

Estructura MPM

El payload MPM es una secuencia plana de registros TLV terminada por un CRC:

TagNombreLongitudNotas
00Indicador de formato de payload2Siempre 01.
01Método de inicio211 estático / 12 dinámico.
0251Información de cuenta del comerciantevariableEspecífico del esquema. Cada esquema reserva su propia etiqueta: PIX usa 26, UPI también usa 26, SGQR usa 51.
52Código de categoría del comerciante (MCC)4ISO 18245 4-digit code.
53Divisa de la transacción3ISO 4217 numeric. 840=USD, 978=EUR, 356=INR, 986=BRL, 764=THB.
54Importe de la transacciónvariableDecimal como cadena. Omitir para QRs de importe en el escaneo.
58Código de país2ISO 3166 alpha-2.
59Nombre del comerciantevariableMáximo 25 caracteres según spec; muchos esquemas relajan esto.
60Ciudad del comerciantevariableMáximo 15 caracteres.
62Plantilla de datos adicionalesvariableReferencia de factura, fidelización, ID de terminal.
63CRC4CRC16-CCITT sobre todo lo anterior a esta etiqueta.

Vectores de prueba canónicos

CasoEntradasTLV inicial esperado
Static MPM, USD, sin importemerchant=Acme Corp
city=LAS VEGAS
country=US
currency=840
mcc=5999
00020101021152045999...53037405802US5909Acme Corp6009LAS VEGAS
Dynamic MPM, EUR, importe 25.00(same)
amount=25.00
Starts 000201010212 (POI method 12 = dynamic), incluye 540525.00.

Errores comunes

Compatibilidad de escáneres

App / dispositivoSoporteNotas
App bancaria / carteraNativoLas apps regionales en cada país (Nubank / apps UPI / TrueMoney / GrabPay) analizan el payload EMVCo de forma nativa.
Cámara iOSCadena en brutoNo reconocido como pago. El usuario debe abrir su app bancaria y escanear desde allí.
Cámara AndroidCadena en brutoIgual, no analizado.
Google LensCadena en brutoMuestra el texto decodificado.
Terminales de pago industrialesNativoLos escáneres POS modernos incluyen análisis EMVCo en el firmware para los esquemas regionales que soportan.

Ver también

Spec version verified 2026-04-18 (EMVCo MPM v1.1 / CPM v1.1). Next review: 2026-07-18.