Integración BReB
Llave Dinámica
Antes de iniciar un cobro mediante Llave Dinámica debes reservar la transacción en el endpoint de reservas. La reserva devuelve un identificador único y temporal (key.value) ligado a un monto exacto: el pagador transfiere a esa llave y la plataforma concilia automáticamente.
https://backcredi.vepay.com.co/v1/dynamic-keys/reservationsCiclo de vida de la llave
El diagrama muestra el recorrido completo: desde la reserva hasta la conciliación del pago contra el monto reservado.
Headers
| Header | Valor | Req. |
|---|---|---|
Authorization | Bearer {token} | Sí |
Content-Type | application/json | Sí |
Cuerpo de la petición
| Campo | Tipo | Descripción | Req. |
|---|---|---|---|
merchant_code | string | Código identificador único del comercio que procesa la transacción (ej. COM-001). | Sí |
amount | string | Monto exacto a cobrar, con dos decimales (ej. 50000.00). | Sí |
{
"merchant_code": "COM-001",
"amount": "50000.00"
}cURL
curl --location 'https://backcredi.vepay.com.co/v1/dynamic-keys/reservations' \
--header 'Authorization: Bearer [REDACTED]' \
--header 'Content-Type: application/json' \
--data '{
"merchant_code": "COM-001",
"amount": "50000.00"
}'Respuesta del servidor
| Campo | Tipo | Descripción |
|---|---|---|
success | boolean | Indica si la reserva se creó correctamente. |
transaction_id | string | UUID de la transacción asociada a la reserva. |
key.type | string | Tipo de llave generada. |
key.value | string | Llave dinámica a la que el pagador debe transferir. |
amount | string | Monto reservado. El pago debe coincidir exactamente. |
expires_at | string | Fecha y hora de expiración en formato ISO UTC. |
message | string | Mensaje descriptivo para mostrar al pagador. |
{
"success": true,
"transaction_id": "a8700742-4930-41fd-ad7a-c5d17a5d7238",
"key": {
"type": "O",
"value": "@PWSAJF6PWEGHA44XDMRP"
},
"amount": "50000.00",
"expires_at": "2026-08-11T15:00:37.007Z",
"message": "Pagá a esta llave por el monto exacto. Un importe distinto será rechazado."
}Reglas y consideraciones clave
Identificador / llave (key.value) — Es el código único generado (ej. @PWSAJF6PWEGHA44XDMRP) al cual el pagador debe realizar la transferencia o pago.
Monto exacto requerido — La transacción queda ligada estrictamente al monto reservado (50000.00). Cualquier intento de pago por un valor diferente será rechazado automáticamente por la plataforma.
Expiración (expires_at) — La llave dinámica tiene una ventana de tiempo limitada expresada en formato ISO UTC. La transacción debe completarse antes de esa fecha y hora.
Simulador de reserva
Simula localmente la respuesta del endpoint para ver la estructura de la llave y el comportamiento de la expiración. No realiza llamadas reales.
Completa los datos y pulsa «Reservar llave» para ver la respuesta simulada.
Ejemplo JavaScript
const res = await fetch(
'https://backcredi.vepay.com.co/v1/dynamic-keys/reservations',
{
method : 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type' : 'application/json'
},
body: JSON.stringify({
merchant_code: 'COM-001',
amount : '50000.00'
})
}
);
const reserva = await res.json();
// Muestra la llave al pagador junto con el monto exacto
console.log(reserva.key.value, reserva.amount, reserva.expires_at);Introducción
Esta API permite hacer transferencias de dinero entre cuentas bancarias usando el sistema BReB de Integración BReB. Piénsala como el "mesero" entre tu app y los bancos: tú le dices a quién le mandas la plata y cuánto, y él se encarga de hacer todo el proceso por detrás para que el dinero llegue.
POSTConsultar llave
Busca la llave (correo, celular o cédula) con la que un cliente está registrado en el sistema. Es como buscar un contacto en el celular — si existe, te muestra toda su información; si no existe, te avisa que no lo encontró.