Guía Sobre Códigos QR

Descripción General

Los Códigos QR ofrecen un mecanismo ágil para iniciar Pagos entre partes. Una persona puede generar un QR para compartir datos de pago, mientras que un Comercio puede exhibirlo para que el comprador complete una compra en un Punto de Venta (POS).

La plataforma Passport PaaS permite crear Códigos QR conformes a la especificación de la industria EMVCo en Colombia (vigente a la fecha de redacción, última actualización de julio de 2025). Estos QR pueden usarse en canales digitales y fuera de línea, reduciendo errores manuales y mejorando la experiencia de compra.

Los QR Bre-B simplifican la venta al incrustar información esencial (p. ej., Llave Bre-B, monto, propósito) en un formato escaneable, reduciendo fricción y mejorando la seguridad, ahorrando tiempo al Cliente.

Los requisitos para QR son definidos por instituciones como: ACH Colombia, Banco de la República, Credibanco, EMVCo, Mastercard, Redeban, Servibanca, Visa y Visionamos. Passport colabora con estos grupos para aportar claridad a la especificación de pagos Bre-B.

Passport, en alianza con Visionamos, opera un punto de acceso nacional a Bre-B para procesar pagos y emitir Códigos QR de uso en todo el ecosistema.

Ciclo de Vida del Pago

Los QR Bre-B pueden usarse en canales físicos y digitales: afiches, terminales POS, cajeros automáticos (ATM), sitios web y apps móviles.

Ejemplo: Compra en una Cafetería

Ejemplo de Ciclo de Vida de un Pago

Ejemplo de Ciclo de Vida de un Pago

La imagen representa una transacción sencilla donde un comprador realiza una compra en un punto de venta. Los pasos son:

  1. El Comercio crea una Venta en su sistema POS.
  2. El POS genera un QR Dinámico con la información de la venta usando la API de Passport PaaS y lo muestra al comprador.
  3. El Comprador escanea el QR con su app bancaria dentro de la Zona Bre-B.
  4. La app precarga destinatario (Llave Bre-B), monto y propósito de la transacción.
  5. El Comprador revisa y confirma la transferencia hacia la Llave Bre-B indicada.
  6. El pago se envía por la red Bre-B desde el banco del Comprador al Banco Sponsor de Passport.
  7. Passport PaaS recibe la confirmación del Nodo Bre-B e identifica al Comercio correspondiente.
  8. Se envía un Webhook al POS del Comercio para confirmar el pago.

Requisitos Previos

Para crear Códigos QR en la Plataforma, deben cumplirse varias condiciones. La información para generar el QR se toma de diversas fuentes:

  • Cliente: El cliente creado contiene datos como nombre del Comercio y dirección (nombre, ciudad, código postal y país), que son campos obligatorios del QR.
  • Llave Bre-B: Una Llave creada para una Cuenta debe incluirse en el QR Estático o Dinámico para enrutar los pagos al Comercio por la red Bre-B.
  • Configuración: La Merchant Category Code (MCC) debe estar configurada en el perfil/Configuración del Comercio; es otro campo obligatorio del QR.
  • Solicitud API: La mayor parte de la información se provee vía el endpoint Crear Códigos QR, con campos obligatorios u opcionales según el caso de uso.

Pasos Requeridos

Para cumplir los requisitos previos, completa:

PasoDescripción
1Vincular Merchant con razón social, dirección, ciudad, país y código postal.
2Vincular Cuenta asociada al Cliente activo.
3Crear Llave Bre-B: al menos una Llave Bre-B vinculada a esa cuenta.

Al finalizar estos pasos, reúne la información necesaria desde las fuentes relevantes para el perfil del QR. Usa el endpoint Crear Códigos QR para completar los campos restantes al crear un QR Estático o Dinámico.

Creación de Códigos QR

Para crear un QR, el debes considerar los campos principales y la información disponible para cada caso de uso.

La siguiente tabla resume consideraciones para maximizar el impacto del QR. No es la lista de campos obligatorios por endpoint, sino los principales que determinan el contenido del QR según el caso.

CampoDinámicoEstático
typeQR de uso único, ligado a un monto específico y a la actividad en el ecosistema del desarrollador.QR reutilizable, pues no contiene información específica de transacción.
channelDónde y cómo se presenta: p. ej., POS o MPOS (POS móvil). El POS ya generó la información de la transacción y está a la espera del pago.Usualmente en un afiche o medio impreso. El QR Estático comparte información que no cambia por transacción (p. ej., Llave Bre-B).
qr_code_referenceReferencia única para asociar el QR con la acción/seguimiento del desarrollador.No requerido
transaction_purposeDescribe qué representa el QR (p. ej., PURCHASE/SHOPPING).Similar al Dinámico; también puede fijarse en el QR Estático.

Estos son los campos más comunes para ajustar la implementación Dinámica o Estática, además de la Llave Bre-B y el Monto, cuando corresponda.

El caso de uso previsto para el QR Dinámico es aquel que está vinculado de forma única a un pago específico - por ejemplo, un comprador en el Punto de Venta (POS). El código QR se genera bajo demanda para esa compra en particular y se configura “dinámicamente” para esa venta.

El QR Estático puede imprimirse en masa y dejarse disponible para que cualquiera lo encuentre; no requiere información específica de la venta para cada persona que lo escanee. Por ejemplo, una organización benéfica podría imprimir Códigos QR Estáticos en un periódico nacional, mientras que la persona que escanee define el monto de la donación directamente en su app bancaria.

Los ejemplos a continuación demuestran como pueden ser implementados:

QR Estático - Impresión
QR Dinámico - Punto de Venta (POS)
QR Dinámico - Comercio Electrónico
QR Dinámico - Cajero Automático (ATM)

Type hereUn QR Estático contiene información fija de pago y no cambia una vez creado. Suele imprimirse y exhibirse en soportes físicos (sticker, póster, mostrador).

Ideal para entornos con interacción presencial directa, como pequeños comercios o ventas informales:

  • El comprador escanea el QR con su app bancaria.
  • El comprador ingresa el monto y envía el pago.
  • El comercio confirma manualmente (p. ej., revisando su app bancaria).

No requiere integración con POS, lo que lo hace una solución ligera para aceptar Bre-B.

La plataforma soporta múltiples caminos de implementación: con cuentas dedicadas de comercio o flujos gestionados por la plataforma donde mantienes el control del ciclo de pago.

QR Estático: Ejemplo de Solicitud

El siguiente ejemplo aplica a un vendedor ambulante que desea aceptar pagos Bre-B mediante un QR Estático impreso en un sticker adherido a su carrito.

ParámetroDescripción
key_idID único de la Llave Bre-B creada en el prerrequisito.
customer_idID único del Comercio (Customer).
typeSTATIC para indicar que el QR es estático (DYNAMIC es otra opción).
channelMPOS para indicar POS móvil.
additional_info.transaction_purposeDentro de additional_info, especifica el propósito (ej.: SHOPPING).
additional_info.transaction.channel_presentation

Código opcional de tres dígitos que describe el medio para detallar el canal.

En este ejemplo “010”: Sticker impreso (0), fuera del domicilio comercial registrado (1), cajero presente (0).

QR Estático: Cuerpo de la Solicitud

QR Estático
Copy

Existen campos opcionales adicionales dentro de additional_info para enriquecer el QR. Revisa el endpoint Crear Códigos QR para conocerlos y sus usos.

QR Estático: Ejemplo de Respuesta

Una vez enviada la solicitud, la plataforma PaaS combina la información de las distintas fuentes y genera un QR conforme a la Especificación EASPBV (Colombia) para QR. La respuesta mantiene un formato similar al de otros recursos.

ParámetroDescripción
idID único del QR creado; úsalo para futuras consultas o eliminación.
qr_code dataCadena formateada del QR; puede presentarse digitalmente o imprimirse.
keyObjeto con key_value y key_type usados, referenciados por key_id.
acquirer_network identifierLos QR siempre serán emitidos por VISI, emisor autorizado por el Banco de la República para llaves Bre-B.
merchantObjeto con información del Comercio (nombre, ciudad, CP, país, MCC).
statusEstado de creación (ACTIVE - ACTIVO).
created_atMarca de tiempo de creación.
key_idID único de la Llave usada.
customer_idID único del Cliente.
typeSTATIC o DYNAMIC (en este ejemplo, STATIC).
channelCómo se presenta el QR (p. ej., MPOS).
transaction_purposeDentro de additional_info; en el ejemplo, SHOPPING.
channel_presentationDentro de additional_info; código de tres dígitos para detallar el canal (ej.: 010 = Sticker impreso (0), fuera del domicilio (1), cajero presente (0)).

QR Estático: Cuerpo de la Respuesta

Respuesta - 201 Created
Copy

El QR se creó correctamente. Puedes usar el id para consultarlo o eliminarlo más adelante. El campo qr_code_data contiene la cadena codificada imprimible (tantas copias como desees). Alternativamente, qr_code_image entrega la imagen en base64 para uso inmediato.

Ventajas del QR Estático

  • Datos fijos: la misma Llave, channel, transaction_purpose y channel_presentation pueden imprimirse y reutilizarse.
  • El sticker puede colocarse en múltiples lugares para facilitar el escaneo.
  • Sin integración compleja con POS para generar y recibir pagos.
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard

La PaaS Platform no verifica que los cálculos de IVA o INC sean correctos - no mantenemos un listado completo de impuestos o recargos aplicables a todas las transacciones en Colombia.

Nuestros Bancos Sponsor no asumen responsabilidad por la exactitud de esos cálculos. Corresponde al Desarrolladorgarantizar que los impuestos, tarifas y recargos se calculen adecuadamente como parte de la contabilidad del proceso de venta.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard