Skip to main content
Estos endpoints ya están implementados y verificados contra el sandbox de DSI (creación del pago con link real y cierre del estado por webhook). Falta el host público definitivo de los callbacks para operar en producción; por eso el grupo sigue marcado como Pronto.
Un canal (POS, Kiosco, Web o App) usa estos endpoints para cobrar a través de PayBridge. El canal envía solo los datos de la transacción (orden, monto, método, storeId, terminalId); PayBridge resuelve el proveedor, crea el pago y devuelve un link de pago que el canal le muestra al cliente. El estado final llega por el webhook de estado. La configuración del comercio (credenciales, métodos, terminales) ya vive en el proveedor vía el config sync, por eso el cobro viaja lean.

Autenticación

string
requerido
API key de Fire vendor-scoped con el scope paybridge:charge. El accountId y el vendorId se derivan de la key; una key sin vendor responde 403.
Todas las respuestas viajan envueltas en { "success": true, "data": { … } }.

Cobro e intentos

Cobro (intent)

El cobro de una orden: monto total, moneda, tienda, terminal y canal. Es lo que el canal crea una sola vez.

Intento (attempt)

Cada intento de pago dentro del cobro. Ocupa un cupo (slot): un cupo por método en el pago mixto, y un intento nuevo en el mismo cupo cuando se reintenta.
Estados del cobro: Estados del intento:

Flujo

1

Crear el cobro

El canal llama a POST /intents con la orden, el monto, el método y su storeId/terminalId. PayBridge crea el pago en el proveedor y devuelve el paymentLink en el primer intento.
2

Mostrar el link

El canal muestra el paymentLink (redirect, QR o iframe) para que el cliente pague.
3

Conocer el resultado

Fire recibe el estado del proveedor por webhook y actualiza el intento y el cobro. El canal lo consulta con GET /intents/{intentId}.
4

Cerrar el caso

Si el cliente no paga, cancela el intento. Si el pago ya está aprobado, reembolsa. Si falla o falta plata, agrega otro intento con POST /intents/{intentId}/pay.

Endpoints


Crear cobro

POST /api/v1/external/paybridge/intents
string
requerido
Identificador de la orden en el sistema del canal (máx. 80 caracteres). Es la clave de idempotencia: repetir el mismo valor devuelve el cobro ya creado, sin duplicarlo.
string
requerido
Código del método de pago en Fire (p. ej. deuna, rutpay). Debe estar activo en el catálogo, si no responde 400.
number
requerido
Monto total a cobrar, en la unidad mayor de la moneda (p. ej. 19.90).
string
requerido
Moneda ISO 4217 de 3 letras (USD, CLP, COP, ARS, VES, BRL).
string
requerido
UUID de la tienda en Fire. Viaja al proveedor como branchOffice.
string
requerido
Id de la terminal POS o del dispositivo de kiosco. Viaja al proveedor como pointOfSale.
string
requerido
Canal que origina el cobro: POS, KIOSK, WEB o APP.
string
País del cobro (ISO alpha-2). Se puede omitir si el método pertenece a un solo país: en ese caso Fire lo deriva. En métodos multi-país es obligatorio; sin él, el intento queda failed porque no se puede resolver la conexión del país.
object
Datos opcionales del pagador. Se reenvían al proveedor cuando los pide.
object
El cobro con todos sus intentos.
Si el proveedor rechaza la creación del pago, la respuesta sigue siendo 201: el cobro existe y su intento queda en failed con el motivo en errorDescription. Revisa el estado del intento, no solo el código HTTP.

Consultar cobro

GET /api/v1/external/paybridge/intents/{intentId} Devuelve el estado local del cobro y todos sus intentos. No llama al proveedor: el estado se mantiene al día con el webhook.
string
requerido
UUID del cobro devuelto al crearlo. Solo se ven los cobros de la cuenta de la API key; el de otra cuenta responde 404.
object
Mismo objeto que devuelve la creación.

Agregar un intento

POST /api/v1/external/paybridge/intents/{intentId}/pay Sirve para dos cosas: reintentar un método que falló y pagar mixto (varios métodos en la misma orden).
string
requerido
UUID del cobro.
string
requerido
Método del intento nuevo.
number
Monto del intento. Si se omite, se usa lo que falta (amountTotal - amountPaid).
number
Cupo al que pertenece el intento. Si se omite, se abre un cupo nuevo (pago mixto). Para reintentar, manda el slot del intento que falló. Un cupo con un intento activo responde 400.
object
El cobro actualizado, con el intento nuevo dentro de attempts.
Un cobro ya cerrado (succeeded, canceled o reversed) no acepta intentos nuevos: responde 400.

Cancelar intento

POST /api/v1/external/paybridge/attempts/{attemptId}/cancel Cancela un intento activo cuyo link todavía no se pagó (o venció).
string
requerido
Id del intento a cancelar.
object
El cobro actualizado; el intento queda en canceled.
El proveedor solo acepta la cancelación cuando el link ya está esperando el pago (waitingPayment). Un intento recién creado suele responder “no aplica para cancelación”: en ese caso Fire no marca el intento como cancelado y devuelve el error, para no dar por cancelado un pago que sigue vivo del otro lado.

Reembolsar intento

POST /api/v1/external/paybridge/attempts/{attemptId}/refund Reembolsa un intento ya aprobado (succeeded).
string
requerido
Id del intento aprobado.
object
El cobro actualizado; el intento pasa a solving hasta que el proveedor confirme.
Solo reembolso total. El proveedor no admite montos parciales: si mandas amount en el body, la respuesta es 400. El reembolso es asíncrono — el intento queda en solving y pasa a refunded cuando llega el webhook refundPayment (o vuelve a solving con el motivo si llega refundFailed).

Errores

Todos los errores traen { "success": false, "error": "…", "message": "…" }.

Relacionado

Webhook de estado

Cómo el proveedor le avisa a Fire que el pago se aprobó, se canceló o se reembolsó.

Config sync hacia DSI

Cómo la config del comercio llega al proveedor para que el cobro sea lean.

Métodos soportados por país

Qué métodos puede cobrar cada país y con qué código.

Disponibilidad de métodos

Qué método está encendido en cada tienda, dispositivo y canal.