Ir al contenido

Colombia — Descripción general

Colombia (CO) soporta dos proveedores de pago, accesibles bajo el prefijo /v1/co/*:

  • Nequi — cobro por notificación push al celular, cobro con QR, dispersión a celulares Nequi y reversos.
  • Bre-B — sistema de pagos inmediatos interoperable de Colombia: cobro con QR, dispersión a llaves Bre-B, gestión de destinatarios y resolución de llaves.

El proveedor se elige por la ruta: /v1/co/payin/... y /v1/co/payout/...Nequi; /v1/co/breb/...Bre-B.

La autenticación hacia nuestra API usa 4 headers firmados con ECDSA-SHA256 (secp256k1). Ver Firma ECDSA.

La API key debe crearse con region: "CO". Una key de CO solo firma paths /v1/co/*.

HeaderDescripción
x-client-idID de la API Key del cliente (región CO)
x-timestampISO 8601 actual (±5 min)
x-nonceString único por request
x-signatureFirma ECDSA-SHA256 en Base64

Todos los endpoints usan autenticación por firma. Montos siempre en pesos COP enteros.

MétodoPathDescripción
GET/v1/co/balanceBalance regional CO con desglose por proveedor
GET/v1/co/transactionsLista de transacciones (Nequi + Bre-B) para conciliación
MétodoPathDescripción
POST/v1/co/payin/pushCobro por notificación push
GET/v1/co/payin/push/{txId}Estado de un cobro push
POST/v1/co/payin/push/{txId}/cancelCancelar un cobro push pendiente
POST/v1/co/payin/qrCobro con código QR
GET/v1/co/payin/qr/{txId}Estado de un cobro QR
POST/v1/co/payout/disburseDispersión a celular Nequi
GET/v1/co/payout/{externalId}Estado de una dispersión
POST/v1/co/payin/{txId}/reversalReverso de un cobro
POST/v1/co/payout/{externalId}/reversalReverso de una dispersión
MétodoPathDescripción
POST/v1/co/breb/payin/qrCrear QR de cobro (dinámico o estático)
GET/v1/co/breb/payin/qr/{txId}Estado del cobro (alias: /v1/co/breb/payin/{txId})
GET/v1/co/breb/payin/qr/{txId}/detailDetalle del recurso QR en la red
GET/v1/co/breb/payin/qrcodesListar QRs del comercio (paginado)
POST/v1/co/breb/payin/qr/decodeDecodificar una cadena EMVCo de QR
DELETE/v1/co/breb/payin/qr/{txId}Cancelar/eliminar un QR
POST/v1/co/breb/recipientsCrear destinatario
GET/v1/co/breb/recipientsListar destinatarios (paginado)
GET/v1/co/breb/recipients/{recipientId}Consultar destinatario
DELETE/v1/co/breb/recipients/{recipientId}Eliminar destinatario
POST/v1/co/breb/recipients/{recipientId}/resolveResolver destinatario contra la red
POST/v1/co/breb/resolve-keyResolver una llave (pago único)
POST/v1/co/breb/validate-keyValidar una llave sin exponer PII
POST/v1/co/breb/payoutDispersión a llave / destinatario / resolución
GET/v1/co/breb/payout/{externalId}Estado de una dispersión
GET/v1/co/breb/paymentsListar pagos Bre-B en la red (paginado)

Cada cuenta tiene un flag productionEnabled (default false).

SituaciónComportamiento
Cuenta en modo sandbox (status = SANDBOX)Todas las peticiones van a sandbox. Siempre permitido.
Cuenta activa, productionEnabled = falsePeticiones de producción se rechazan con 403. No se llama al proveedor.
Cuenta activa, productionEnabled = truePeticiones van a producción.

En sandbox (configuración por defecto) el gateway simula el desenlace automáticamente: al crear la transacción, esta pasa a COMPLETED de inmediato, el balance se mueve igual que en producción y recibes el webhook correspondiente con el campo extra "sandbox": true. La respuesta del POST de creación sigue devolviendo el estado inicial (PENDING / PROCESSING).

AspectoNequiBre-B
Pay-InPush (al celular) + QRQR (dinámico o estático)
Pay-OutDispersión por celularDispersión a llave, destinatario o resolución
LlavesID, PHONE, EMAIL, ALPHA, BCODE
Monto máximoSegún límites de tu cuenta11.500.000 COP por transacción
ReversosSoportados (pay-in / pay-out)No disponible
EstadoSignificado
PENDINGCreada, esperando aprobación / pago
PROCESSINGDispersión / reverso en curso
COMPLETEDFinalizada con éxito (terminal — mueve el balance)
FAILEDError definitivo (terminal)
CANCELLEDCancelada por ti (push cancelado, QR eliminado)
EXPIREDVenció sin pago (QR / push no aprobado a tiempo)

El estado final siempre se confirma vía webhook. También puedes consultar el estado con GET: si la transacción sigue PENDING, el gateway sincroniza contra el proveedor en esa misma consulta.