BReB — QR

POST

02 — Generar QR

Genera un código QR siguiendo el estándar QR. Puedes crear QRs estáticos (11) para puntos de venta físicos o dinámicos (12) para cobros específicos con monto fijo.

POSThttps://qrvbreb.vepay.com.co/api/qr/generate

Requiere el header Authorization: Bearer {token} obtenido en el paso Login.

QR Estático (11) vs QR Dinámico (12)
QR Estático (11)value: "0.00"Un QR, N pagosvsQR Dinámico (12)value: "5000.00"Un QR, un pago exactoUso estático:Caja · MostradorAfiche impresoUso dinámico:E-commerce · FacturaCobro a distancia

Headers

HeaderValorReq.
AuthorizationBearer {token}Sí
Content-Typeapplication/jsonSí

Parámetros del body

CampoTipoDescripciónReq.
payloadFormatIndicatorstringSiempre "01". Versión del estándar QR.Sí
pointOfInitiationMethodstring"11" = estático · "12" = dinámico.Sí
merchantAccountInformationobjectInformación de la cuenta del comercio.Sí
.keytypestringTipo de llave: PHONE · NRIC · EMAIL · ALPHANUM · MERCHANTCODESí
.keystringValor de la llave. Límites: PHONE=10, NRIC=15, ALPHANUM=50, MERCHANTCODE=20.Sí
.merchantNamestringNombre del comercio (visible en la app del pagador).Sí
.merchantCitystringCiudad del comercio.Sí
.postalCodestringCódigo postal del comercio.Sí
.merchantCategoryCodestringCódigo MCC del comercio (4 dígitos). Ej: "0000" para genérico.Sí
transactionobjectDatos de la transacción.Sí
.valuestringMonto en COP con hasta 2 decimales. Para QR dinámico usar "0".Sí
.currencystringCódigo ISO 4217. Para COP usar "CO" (internamente mapea a 170).Sí

Cuerpo de ejemplo

JSON — QR Dinámico (cobro por $5.000)
{
  // Siempre debe ser "01"
  "payloadFormatIndicator": "01",
  // 11 = estático, 12 = dinámico
  "pointOfInitiationMethod": "12",
  "merchantAccountInformation": {
    // Tipo de llave: PHONE, NRIC, EMAIL, ALPHANUM, MERCHANTCODE
    "keytype"       : "PHONE",
    // Número de celular registrado del comercio (10 dígitos)
    "key"           : "3001234567",
    "merchantName"  : "Mi Tienda Online",
    "merchantCity"  : "Bogota",
    "postalCode"    : "110111",
    // Código MCC — 0000 para genérico
    "merchantCategoryCode": "0000"
  },
  "transaction": {
    // Monto con 2 decimales. QR dinámico: "0"
    "value"   : "5000.00",
    // Para COP usar "CO" (ISO 4217: 170)
    "currency": "CO"
  }
}

cURL

cURL
curl --location 'https://qrvbreb.vepay.com.co/api/qr/generate' \
--header 'Authorization: Bearer TU_JWT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
  "payloadFormatIndicator": "01",
  "pointOfInitiationMethod": "12",
  "merchantAccountInformation": {
    "keytype": "PHONE",
    "key": "3001234567",
    "merchantName": "Mi Tienda Online",
    "merchantCity": "Bogota",
    "postalCode": "110111",
    "merchantCategoryCode": "0000"
  },
  "transaction": {
    "value": "5000.00",
    "currency": "CO"
  }
}'

Ejemplo JavaScript

JavaScript
const token = localStorage.getItem('breb_token'); // obtenido en Login

const res = await fetch('https://qrvbreb.vepay.com.co/api/qr/generate', {
  method : 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type' : 'application/json'
  },
  body: JSON.stringify({
    payloadFormatIndicator : "01",
    pointOfInitiationMethod: "12",
    merchantAccountInformation: {
      keytype             : "PHONE",
      key                 : "3001234567",
      merchantName        : "Mi Tienda Online",
      merchantCity        : "Bogota",
      postalCode          : "110111",
      merchantCategoryCode: "0000"
    },
    transaction: { value: "5000.00", currency: "CO" }
  })
});
const qrData = await res.json();
// qrData contiene el QR string (EMV) y/o imagen para mostrar al cliente
console.log(qrData);

En esta página