Home > Solutions > EMVCo – Merchant-Presented QR

EMVCo – Merchant-Presented QR

November 20, 2019 Leave a comment Go to comments

EMVCo QR Code

Esta vez vamos a presentar un resumen de como trabajar con el estándar EMVCo QR, para comenzar, este estándar busca proporcionar especificaciones relacionadas con el uso de QR para los pagos digitales, en este sentido tenemos dos modalidades:

  • Consumer-Presented, esta modalidad implica que el cliente del comercio muestre el QR al comercio para realizar la transacción de pago; es decir, la persona genera su código QR desde su dispositivo móvil para que el comercio, a través de un escaner, pueda realizar la lectura y disparar la transacción de pago.
  • Merchant Presented, aquí el que muestra el código QR es el comercio y el cliente desde su aplicación móvil va realizar la lectura e iniciar la transacción de pago.

En este post veremos con más detalle como se estructura la segunda modalidad y veremos un ejemplo práctico. En primera instancia, debemos conocer los conceptos y estructura de esta especificación, para esto debemos mencionar como se compone el QR Code.

QR Code Payload

Se compone de cinco secciones según lo indicado en el EMVCo y tiene lo siguiente:

  1. Convenciones usadas para el contenido del código QR
  2. Información de la cuenta del comercio
  3. Información adicional del comercio
  4. Información del valor de la transacción
  5. Datos adicionales para el apoyo de diversos casos de uso

Cada una de estas secciones contiene objetos (Data Object) que van a permitir formar la trama completa y ser enviados a la transacción de pago, debajo se mostrará una tabla con cada uno de estos campos y al final de este post verán como se lee cada uno de estos objetos.

Data Objects – Posición, Formato y longitud

ID’s Formato Longitud
1. QR Code Conventions
Payload Format Indicator “00” N “02”
Point of Initiation Method “01” N “02”
Cyclic Redundancy Check (CRC) “63” ans “04”

 

ID’s Formato Longitud
2. Merchant Account Information (*)
Merchant Account Information “02”-“51” ans var. up to “99”

(*) Información correspondiente al comercio que se desglosa en otra tabla más adelante de este post

ID’s Formato Longitud
3. Additional Merchant Information
Merchant Category Code “52” N “04”
Country Code “58” ans “02”
Merchant Name “59” ans var. up to “25”
Merchant City “60” ans var. up to “15”
Postal Code “61” ans var. up to “10”
Merchant Information-Alternate Language “64” S var. up to “99”

 

ID’s Formato Longitud
4. Transaction Value
Transaction Amount “54” ans var. up to “13”
Transaction Currency “53” N “03”
Tip or Convenience Indicator “55” N “02”
Value of Convenience Fee Fixed “56” ans var. up to “13”
Value of Convenience Fee Percentage “57” ans var. up to “05”

 

ID’s Formato Longitud
5. Additional Data Objects “62” S var. up to “99”
Bill Number “01” ans var. up to “25”
Mobile Number “02” ans var. up to “25 “
Store Label “03” ans var. up to “25”
Loyalty Number “04” ans var. up to “25”
Reference Label “05” ans var. up to “25”
Customer Label “06” ans var. up to “25”
Terminal Label “07” ans var. up to “25”
Purpose of Transaction “08” ans var. up to “25”
Additional Consumer Data Request “09” ans var. up to “03”

Data Objects – Merchant Account Information

El campo de información de la cuenta del comercio (Merchant Account Information) puede trabajarse bajo múltiples redes de pagos; es decir, puede trabajar con Visa, MasterCard o cualquier sistema de pago EMV de forma simultánea, de igual forma, se puede trabajar con sistemas de pagos que no pertenezcan al sistema EMV, como pueden ser redes locales (Por ejemplo: Tunki). Debajo se muestra la estructura de este campo.

ID’s Merchant Account Information
“02”-“03” Reserved for Visa
“04”-“05” Reserved for Mastercard
“06”-“08” Reserved by EMVCo
“09”-“10” Reserved for Discover
“11”-“12” Reserved for Amex
“13”-“14” Reserved for JCB
“15”-“16” Reserved for UnionPay
“17”-“25” Reserved by EMVCo
“26”-“51” Templates reserved for additional payment

Se utilizará un ID de Merchant Account Information para el sistema de pagos primitivo (“02”-”25”) cuando sea este quien asigne la información de cuenta del comercio a través de un identificador implícito (Identificador de Visa/MC/AMEX, etc).

Para los campos reservados para sistema de pagos adicionales (“26”-”51”) se utilizan a través de plantillas, donde el campo “Globally Unique Identifier” debería tener un valor que contenga al menos uno de los siguientes puntos:

  • Un Application Identifier (AID), que cumpla con el estándar ISO 7816-4. Por ejemplo: “D840000000”
  • Un [UUID] sin separadores. Por ejemplo: “581b314e257f41bfbbdc6384daa31d16”
  • Un DN reservado. Por ejemplo: “com.merchant.name”
ID’s Additional Payment Formato Longitud
“00” Globally Unique Identifier ans var. up to “32”
“01”-“99” Payment network specific S var. up to “99”

Organización de los datos

Con cada objeto de datos mencionados arriba se puede construir la  trama que nos permita realizar a transacción de pago a través del QR y bajo el estándar de EMVCo. La formación de estos datos siempre debe seguir el siguiente orden:

 

Ejemplo 1: Transacción básica

Para este caso sería un funcionalidad básica donde el cliente realiza el escaneo del QR a través de su aplicación móvil y procesa la transacción derivándola hacia el adquiriente o procesador para su autorización del pago, una vez efectuado el pago, se envía la confirmación (o rechazo) de la operación al comercio y al cliente. Para este escenario tenemos la siguiente estructura de la trama EMVCo.

Data Object Formato ID Longitud Valor
Payload Format Indicator N “00” “02” “01”
Merchant Account Information ans “02” “16” “4000123456789012”
Merchant Category Code N “52” “04” “5251”
Transaction Currency N “53” “03” “840”
Country Code ans “58” “02” “ES”
Merchant Name ans “59” “19” “SKILLS & EXPERIENCE”
Merchant City ans “60” “09” “BARCELONA”
Cyclic Redundancy Check (CRC) ans “63” “04” Calculado usando un algoritmo

El código QR generado por el comercio y leído por el aplicativo se traduce en lo siguiente:

000201021640001234567890125204525153038405802PE5919SKILLS+&+EXPERIENCE6009BARCELONA630425B4

Ejemplo 2: Múltiples redes de pagos

En este ejemplo, el cliente va tener la posibilidad de realizar el pago a través de diversos sistemas de pagos (EMV o no-EMV). Para intentar entenderlo mejor podemos ver el siguiente gráfico:


Para este escenario tenemos la siguiente estructura de la trama EMVCo:

Data Object Formato ID Longitud Valor
Payload Format Indicator N “00” “02” “01”
Merchant Account Information ans “02” “16” “4000123456789012”
Merchant Account Information ans “26” “40″
• Globally Unique ID ans “00” “12” D15600000000
• Merchant ID S “01” “20” A93FO3230QDJ8F93845K
Merchant Category Code N “52” “04” 5251
Transaction Currency N “53” “03” 840
Transaction Amount ans “54” “13” 0000000000010
Country Code ans “58” “02” ES
Merchant Name ans “59” “19” “SKILLS & EXPERIENCE”
Merchant City ans “60” “09” “BARCELONA”
Cyclic Redundancy Check (CRC) ans “63” “04” Calculado usando un algoritmo

El código QR generado por el comercio y leído por el aplicativo se traduce en lo siguiente:

0002010216400012345678901226400012D156000000000120A93FO3230QDJ8F93845K

520452515303840541300000000000105802PE5919SKILLS+&+EXPERIENCE6009BARCELONA630425B4

Para mayor información sobre este estándar pueden recurrir a las especificaciones en el siguiente enlace.

  1. No comments yet.
  1. No trackbacks yet.

Leave a comment