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.
POST
https://qrvbreb.vepay.com.co/api/qr/generateRequiere el header Authorization: Bearer {token} obtenido en el paso Login.
QR Estático (11) vs QR Dinámico (12)
Headers
| Header | Valor | Req. |
|---|---|---|
Authorization | Bearer {token} | Sí |
Content-Type | application/json | Sí |
Parámetros del body
| Campo | Tipo | Descripción | Req. |
|---|---|---|---|
payloadFormatIndicator | string | Siempre "01". Versión del estándar QR. | Sí |
pointOfInitiationMethod | string | "11" = estático · "12" = dinámico. | Sí |
merchantAccountInformation | object | Información de la cuenta del comercio. | Sí |
.keytype | string | Tipo de llave: PHONE · NRIC · EMAIL · ALPHANUM · MERCHANTCODE | Sí |
.key | string | Valor de la llave. Límites: PHONE=10, NRIC=15, ALPHANUM=50, MERCHANTCODE=20. | Sí |
.merchantName | string | Nombre del comercio (visible en la app del pagador). | Sí |
.merchantCity | string | Ciudad del comercio. | Sí |
.postalCode | string | Código postal del comercio. | Sí |
.merchantCategoryCode | string | Código MCC del comercio (4 dígitos). Ej: "0000" para genérico. | Sí |
transaction | object | Datos de la transacción. | Sí |
.value | string | Monto en COP con hasta 2 decimales. Para QR dinámico usar "0". | Sí |
.currency | string | Código ISO 4217. Para COP usar "CO" (internamente mapea a 170). | Sí |
Cuerpo de ejemplo
{
// 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 --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
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);POST01 — Login
Autentícate con las credenciales entregadas por PaymentsWay para obtener el JWT Bearer token que necesitas en todas las demás llamadas. El token expira en 1 hora.
POST03 — Verificar
Verifica que un JWT token (generado en el paso Generar QR) sea válido y no haya expirado. Úsalo para validar el QR antes de mostrarlo al cliente o para confirmar que la sesión sigue activa.