Pagar a un proveedor
Qopper no es solo para agentes que cobran. La otra mitad es una empresa que paga a sus proveedores. Una compañía fondea un saldo en USDC y paga a proveedores internacionales con el flujo completo de cuentas por pagar:invoice → verify → quote → approve → execute → reconcile.
Al igual que el lado agente, la empresa entra desde la consola; todo queda acotado a tu cuenta (ownerId).
El flujo
1. Fondear la cuenta de la empresa
businessId y abónalo:
El abono es idempotente: reenviar el mismo idempotencyKey no abona dos veces.
2. Dar de alta un proveedor
Un proveedor es una cuenta de banco (recibe moneda local, p. ej. COP) o una wallet (recibe USDC). Qopper detecta un cambio en los datos del banco y subebankRev, lo que obliga a re-verificar antes del siguiente pago.
3. Crear y verificar una factura
riskFlags. Sin riesgos, la factura pasa a verified.
4. Quote, aprobar, ejecutar
El routing engine
El quote lo produceintegrations/routing-engine.js. Los rails son adaptadores; hoy hay dos:
- on-chain (
onchain) — USDC directo a la wallet del proveedor. Sin FX, sin fee para el proveedor, en minutos. - off-ramp (
offramp) — USDC → moneda local a una cuenta de banco (COP, MXN, …). Aplica un spread FX y un fee.
QOPPER_FX_USD_COP, QOPPER_OFFRAMP_CORRIDORS (JSON) y el proveedor real de payouts con QOPPER_OFFRAMP_EXECUTOR_URL.
Pagos en lote (Mass Payments)
Paga a N destinatarios en una operación: la empresa se debita una vez por el total, y el rail eschain.batchSendUsdc (transferencias secuenciales desde la cuenta qopper-treasury).
GET /api/business/:id/payouts/batches. El lote es idempotente por idempotencyKey; si el rail falla, el saldo de la empresa se repone y el lote queda failed.
Fondear con Onramp (fiat → USDC)
Abona USDC real. El servidor firma el token de sesión de Coinbase (la clave secreta de CDP nunca llega al navegador) y devuelve unonrampUrl de un solo uso que abres en pestaña nueva.
POST /agents/:id/onramp/session — el watcher de depósitos acredita el saldo del agente automáticamente cuando llega el USDC.
Para demos, define QOPPER_ONRAMP_SANDBOX=1: la compra siempre “triunfa” y tu tarjeta nunca se carga.
Facturar a clientes (Invoicing / AR)
El mismo negocio también puede cobrar: emite una factura a un cliente, comparte el link y el dinero llega a tu saldo cuando paga.paymentUrl. El cliente paga desde una wallet de agente (autenticada con su qp_sk_) o on-chain en USDC (x402):
paid y businesses.balance_minor se acredita — de forma idempotente (una factura paga una sola vez). Lístalas con GET /api/business/:id/invoicing.