Conceptos
El modelo de datos de Argentive: wallet, sub-wallets por agente, caps, payees, KYC y approvals.
Un puñado de primitivas explican todo lo demás. Todo lo que sigue está pegado al
modelo real (wallet_sub_accounts, wallet_agent_keys, wallet_movements).
Wallet
Una wallet es la cuenta principal del usuario o la empresa. Tiene un CVU real (emitido vía Manteca/BIND sobre COELSA) y un balance en pesos. Es la única cuenta que hoy tiene un CVU direccionable de verdad.
Sub-wallet (agente)
Cada agente es un sub-wallet (wallet_sub_accounts) que cuelga de la wallet
principal. No es un CVU aparte: es un cap lógico sobre el mismo CVU. Manteca todavía
no emite sub-CVUs reales, así que la separación de fondos por agente es contable, no
bancaria — pero el enforcement de límites y la atribución de cada movimiento sí son reales.
Un sub-wallet tiene:
agentLabel— el identificador del agente dentro de la wallet.type— bifurca el producto:ai_agent, oemployee/cost_centerpara el segmento corporativo.approvalConfig— los caps del agente (ver abajo). Si esnull, hereda del padre.status—active,pausedoclosed.
Caps y velocity
Los límites viven en approvalConfig y se acumulan por ventana de tiempo (zona horaria AR):
| Campo | Qué limita |
|---|---|
per_transaction_cents | Monto máximo por pago individual |
per_day_cents | Suma de pagos liquidados + holds en el día |
per_month_cents | Suma acumulada en el mes |
panic_limit_24h_cents | Freno duro: tope en cualquier ventana móvil de 24h |
silentThreshold | Umbral por debajo del cual el pago no requiere aviso |
Los montos se manejan en centavos (enteros) en la API y la DB. La resolución de velocity suma gastos liquidados más holds en vuelo, así que dos pagos concurrentes no pueden saltar el cap.
Hold, no block
Cuando un pago supera un cap, no se rechaza con un error: se crea un approval
pendiente y la plata no se mueve hasta que un humano lo resuelve. El agente que originó
el pago no puede aprobar su propio hold. Este es el modelo collectLimitBreaches →
approval, calcado del contrato de límites de la industria pero con nuestro panic_limit_24h
encima.
Payee (destinatario)
Un payee es un destinatario ya dado de alta: alias o CVU + titular. Los payees se
crean solo desde la app web (superficie de confianza). Manteca resuelve el alias y
devuelve el titular real (toName / toLegalId), que usamos para validar y para
anti-fraude. Los agentes solo pueden pagar a payees existentes.
Agent key
Una agent key (ak_arg_…) es una credencial bound a un agente. Autentica
directamente como ese agente: la identidad sale de la credencial, sin pasar el label como
argumento. Se muestra una sola vez, se rota con 24h de gracia y se revoca al instante.
Ver Agent keys.
KYC / identidad
La identidad se ancla por teléfono + OTP y se verifica por KYC (widget Sumsub, vía Manteca y Pomelo). El KYC de la persona/empresa es lo que hace que la identidad del agente sea legalmente verificable, no un apodo. Compliance sobre marco BCRA / PSPCP.
Cards
Una card single-use (emitida vía Pomelo) es otro riel Visa sobre el mismo cap del
agente: el spend_limit de la card es un hold sobre el cap del sub-wallet. Ver
Cards.