Crear Códigos QR

Esta especificación está sujeta a cambios. El estándar colombiano EASPBV está evolucionando para soportar las capacidades de la red Bre-B. Passport colabora activamente con entidades del sector para definir un modelo robusto y flexible de integración de códigos QR para pagos en tiempo real.

Visión General

Este endpoint permite crear un Código QR compatible con Bre-B utilizando la API de la Plataforma PaaS de Passport. El código QR codifica información de pago y metadatos contextuales de acuerdo con el estándar colombiano EASPBV, devolviendo un identificador único del QR y los detalles asociados.

Tipos de QR

Los tipos de QR soportados son: Dinámicos (DYNAMIC) y Estáticos (STATIC).

Detalles del Endpoint

ParámetroDescripción
Endpointhttps://api.paas.sandbox.co.passportfintech.com/v1/qrcodes
MétodoPOST
EncabezadosContent-Type: application/json, Authorization
AutenticaciónToken de Acceso (Bearer Token)

Cuerpo de la Solicitud

ParámetroTipoCardinalidadDescripción
key_idStringObligatorioID único de la llave Bre-B asociada a la cuenta del comercio.
customer_idStringObligatorioID único del cliente (comercio) que inicia la transacción.
typeENUMObligatorioTipo de código QR: STATIC o DYNAMIC.
channelENUMObligatorioCanal en el cual se presentará el QR: MAN, POS, APP, ECOMM, MPS, ATM.
additional_infoObjetoObligatorioObjeto con metadatos adicionales de la transacción.
additional_info.transaction_purposeENUMObligatorioFinalidad de la transacción: SHOPPING, CANCELLATION, TRANSFER, RETREAT, COLLECTION, REFILL, DEPOSIT.
qr_code_referenceStringOpcionalReferencia única que se puede añadir y enviar a la red bre-b, relacionada con el pago.
additional_info.invoice_numberStringOpcionalNúmero de factura (máx. 25 caracteres).
additional_info.mobile_phone_numberStringOpcionalNúmero móvil vinculado a la transacción.
additional_info.store_labelStringOpcionalIdentificador de tienda.
additional_info.loyalty_labelStringOpcionalReferencia a programa de lealtad del comprador.
additional_info.reference_labelStringOpcionalReferencia única de la transacción.
additional_info.customer_labelStringOpcionalIdentificador único del comprador.
additional_info.terminal_labelStringOpcionalID del terminal de punto de venta (POS).
additional_info.customer_infoENUMOpcionalInformación requerida del comprador: ADDRESS, EMAIL, PHONE.
additional_info.channel_presentationStringOpcionalCódigo de 3 dígitos que indica cómo fue presentado el QR.
vatObjetoCondicionalInformación del IVA si se incluye monto. Obligatorio para QR dinámicos.
vat.vat_typeENUMCondicionalTipo de cálculo del IVA: FIXED, PERCENTAGE, WALLET.
vat.vat_valueStringCondicionalValor fijo en COP o porcentaje (5 decimales).
vat.vat_baseStringCondicionalBase del valor sobre el cual se calcula el IVA.
incObjetoCondicionalInformación del INC. Aplicable si se incluye monto.
inc.inc_typeENUMCondicionalTipo de cálculo del INC: FIXED, PERCENTAGE, WALLET.
inc.inc_valueStringCondicionalValor fijo en COP o porcentaje (5 decimales).
amountObjetoOpcionalValor de la transacción codificada en el QR.
amount.valueStringOpcionalValor del pago (e.g., "100000.00").
amount.currencyENUMOpcionalDebe ser COP.
tipObjetoOpcionalInformación sobre propina (opcional).
tip.tip_typeENUMOpcionalMétodo de cálculo: REQUEST, FIXED, PERCENTAGE.
tip.tip_valueStringOpcionalRequerido si el tipo es FIXED.
tip.tip_percentageStringOpcionalRequerido si el tipo es PERCENTAGE.

Ejemplo de Solicitud

QR Dinamico
QR Estatico
Copy

Cuerpo de la Respuesta

  • Código HTTP: 201 Created.
  • Retorna un código QR creado y asociado a los metadatos de la solicitud.

Ejemplo de Respuesta

QR Dinamico
QR Estatico
Copy

La respuesta de Códigos QR incluye la imagen en formato Base64. Puedes usar cualquier librería de frontend para convertirla en una imagen legible para tu audiencia.

Los códigos QR también son visibles en el dashboard para fines de validación.

Errores Comunes y Manejo

Código HTTPSignificadoDescripción
400 Bad RequestDatos inválidosFaltan campos requeridos o contienen valores incorrectos.
401 UnauthorizedToken inválidoEl token de acceso ha expirado o es inválido.
403 ForbiddenAcceso denegadoLa solicitud no está autorizada para validar la entidad.
500 Server ErrorError del servidorSe produjo un error inesperado al procesar la validación.

Buenas Prácticas

  • Verifica que el key_id y customer_id sean válidos y estén asociados correctamente.
  • Usa el campo channel_presentation para detallar cómo y dónde se muestra el QR.
  • Si se incluye un monto, asegúrate de incluir los objetos vat e inc con la estructura y tipos adecuados.
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard