Un endpoint, múltiples canales
Todos los cobros se crean con el mismo endpointPOST /payments. Lo que cambia es qué campos envías, y eso determina cómo le llega el cobro a tu cliente.
| Quiero… | Campo clave | ¿Qué sucede? |
|---|---|---|
| Cobrar por WhatsApp | phone | El cliente recibe el link de pago por WhatsApp automáticamente |
| Cobrar por Email | email | El cliente recibe el link de pago por correo electrónico |
| Crear un link de pago (monto fijo) | amount | Se genera un payment_link con monto predefinido |
| Crear un link de pago (monto abierto) | Sin amount | Se genera un payment_link donde el cliente ingresa el monto |
| Crear una referencia para el portal | reference | El cliente busca su cobro en el portal de pagos con esa referencia |
| Cobrar con QR Bre-B | POST /charges/bre-b | Se genera un código QR que el cliente escanea desde su app bancaria |
| WhatsApp + Email + Referencia | Todos | Se envía por ambos canales y queda disponible en el portal |
Puedes combinar varios campos en una misma solicitud. Por ejemplo, enviar
phone + email + reference para que el cobro llegue por todos los canales simultáneamente.Cobrar por WhatsApp
Envía el campophone con el número en formato E.164. OnePay envía automáticamente un mensaje de WhatsApp con el link de pago.
Cobrar por Email
Envía el campoemail. OnePay envía automáticamente un correo electrónico con el link de pago.
Link de pago con monto fijo
Si no necesitas enviar el cobro por WhatsApp ni email, simplemente crea el cobro conamount y title. Recibirás un payment_link que puedes compartir por el canal que prefieras (chat, redes sociales, SMS, etc.).
Link de pago con monto abierto
Si necesitas que el cliente decida cuánto pagar (donaciones, aportes voluntarios, pagos parciales), omite el campoamount.
Referencia para el portal de pagos
Si usas el portal de pagos, envía el camporeference para que el cliente pueda buscar su cobro por referencia en el portal.
APTO-401-ENE-2025 y puede pagar directamente desde ahí.
El portal de pagos se configura desde el administrador de OnePay. Puedes personalizar la imagen, textos y branding.
Combinar canales
Puedes enviar múltiples campos para que el cobro llegue por varios canales a la vez:- El cliente recibe el cobro por WhatsApp
- También recibe el cobro por email
- Puede buscar la referencia en el portal de pagos
- Al pagar, es redirigido a
redirect_url
Resumen: ¿Qué campo uso?
| Campo | Tipo | Efecto |
|---|---|---|
amount | number | Define el monto fijo. Si se omite, el link es de monto abierto |
title | string | Mensaje que ve el cliente en la página de pago (requerido) |
phone | string | Envía el cobro por WhatsApp (formato E.164: +573201112233) |
email | string | Envía el cobro por email |
reference | string | Crea una referencia para el portal de pagos |
redirect_url | string | URL de redirección después del pago |
expiration_date | date | Fecha límite para pagar (YYYY-MM-DD HH:MM:SS) |
allows | object | Controla qué métodos de pago están disponibles |
Configurar métodos de pago disponibles
Usa el campoallows para controlar qué métodos de pago verá el cliente en el link:
Escuchar el resultado
Independientemente del canal que uses, el resultado del pago se notifica por webhook:Cobrar con QR Bre-B
Bre-B es el sistema de pagos inmediatos del Banco de la República. ConPOST /charges/bre-b generas un código QR que el cliente escanea desde su aplicación bancaria para aprobar el pago al instante.
Este caso de uso usa un endpoint diferente (
POST /charges/bre-b) en lugar de POST /payments.Mostrar el QR al cliente
El campoqr.image contiene la imagen en base64. Muéstrala directamente en tu frontend:
Flujo
- Tu sistema llama a
POST /charges/bre-bpara generar el QR - Muestras el QR al cliente (en pantalla, impreso, etc.)
- El cliente escanea el QR desde su app bancaria
- El banco procesa el pago en segundos
- OnePay te notifica el resultado por webhook
Expiración del QR
| Parámetro | Valor |
|---|---|
| Mínimo | 5 minutos |
| Máximo | 45 días (64800 minutos) |
| Por defecto | 15 minutos |
failed.
Para más detalles del endpoint, consulta la referencia de QR Bre-B.