Decide whether an agent may spend — before it does. Decide si un agente puede gastar — antes de que lo haga.
The problemEl problema
Agents can spend. You still lack a control plane. Los agentes pueden gastar. Aún no tienes un plano de control.
AI SaaS teams are wiring payment tools into agents. The usual safeguard is a human approving every charge — and approving every charge by hand ends in approving everything without reading. Without a policy layer, every spend call is either a silent pass-through or a rubber stamp.Los equipos de AI SaaS están conectando herramientas de pago a agentes. La salvaguarda habitual es un humano aprobando cada cargo — y aprobar cada cargo a mano termina en aprobar todo sin leer. Sin una capa de políticas, cada gasto es un pass-through silencioso o un sello automático.
- 01
Approval fatigue: one prompt per charge until nobody reads themApproval fatigue: una aprobación por cargo hasta que nadie las lee
- 02
The approval screen shows amount and merchant — not why the agent chose itLa pantalla de aprobación muestra monto y comercio — no por qué el agente lo eligió
- 03
Security and SRE cannot prove why a decision happenedSecurity y SRE no pueden probar por qué ocurrió una decisión
How it worksCómo funciona
Three steps to an auditable spend decisionTres pasos a una decisión de gasto auditable
- Step 01
Declare policy in YAMLDeclara la política en YAML
Spend rules as code: reviewable, diffable, owned by Security or Platform.Reglas de gasto como código: revisables, diffables, propiedad de Security o Platform.
version: 1defaults: mode: deny # fail-closed dry_run: truerules: - id: deny-crypto match: { merchant_in: [binance, coinbase] } action: deny reason_code: DENY_HIGH_RISK_MERCHANT - id: allow-small-saas match: { amount_lte: 25, merchant_in: [notion, openai] } action: allow reason_code: ALLOW_SMALL_SAAS - id: ask-large match: { amount_gt: 25 } action: ask_human reason_code: ASK_AMOUNT_OVER_THRESHOLD
- Step 02
Intercept the spend toolIntercepta la herramienta de gasto
A self-hostable policy sidecar sits in front of agent payment tools — no silent pass-through.Un policy sidecar self-hostable se coloca frente a las herramientas de pago del agente — sin pass-through silencioso.
agent.spend()agente.cash sidecarpayment tool - Step 03
Allow, deny, or ask a human — leave the trailPermitir, denegar o pedir a un humano — dejar el rastro
Every decision carries a reason code and links to the previous one in a hash-chained audit log. When a human must decide, they get one approval link with the agent's reason.Cada decisión lleva un reason code y se enlaza con la anterior en un audit log encadenado con hashes. Cuando debe decidir un humano, recibe un solo link de aprobación con el motivo del agente.
- allowALLOW_SMALL_SAAS
- denyDENY_HIGH_RISK_MERCHANT
- ask_humanASK_AMOUNT_OVER_THRESHOLD
- audit: seq 42 · prev_hash ✓ · chain verified
BoundariesLímites
What it is NOTQué NO es
Explicitly not: a wallet, bank, custodian, or PSP.Explícitamente no es: una wallet, banco, custodio ni PSP.
Wallet / bank / custodian / PSP — it never holds fundsWallet / banco / custodio / PSP — nunca custodia fondos
Real money rails — today it decides in front of a payment sandbox onlyRieles de dinero real — hoy decide solo frente a un sandbox de pagos
Full evidence dashboard — that comes in a later phaseDashboard completo de evidencia — llega en una fase posterior
InteractiveInteractivo
Policy decision preview (dry-run)Vista previa de decisión de política (dry-run)
Enter a merchant and amount. See whether policy would allow, deny, or ask-human — with a reason code. No email required. No real money.Introduce un comercio e importe. Mira si la política haría allow, deny o ask-human — con reason code. Sin email. Sin dinero real.
POST /v1/spend { "merchant": "OpenAI", "amount": 50.00, "currency": "USD" }
- action
- ask_human
- reason_code
- ASK_AMOUNT_OVER_THRESHOLD
- message
- Spend would pause for human approval (ask-human).El gasto se pausaría para aprobación humana (ask-human).
FeaturesFunciones
What you get out of the boxLo que obtienes de entrada
YAML policies. Three paths. A mandatory reason. One approval link. A hash-chained audit trail. Drift, reconciliation and a kill switch. Remote MCP and a hosted skill.Políticas YAML. Tres caminos. Motivo obligatorio. Un solo link de aprobación. Audit trail encadenado con hashes. Desvío, conciliación y kill switch. MCP remoto y skill alojada.
- 01
YAML policiesPolíticas YAML
Spend rules as code: merchants, per-agent budgets, auto-approve threshold. Reviewable, diffable, owned by Security/Platform.Reglas de gasto como código: comercios, presupuestos por agente, umbral de auto-aprobación. Revisables, diffables, propiedad de Security/Platform.
- 02
allow / deny / ask-humanallow / deny / ask-human
Every decision is one of three paths, with a reason code — no silent pass-through.Cada decisión es uno de tres caminos, con reason code — sin pass-through silencioso.
- 03
The agent's reason, mandatoryMotivo del agente, obligatorio
Every purchase request says why. No reason, no call to the rail: it is denied before any quote exists.Cada solicitud de compra dice por qué. Sin motivo no hay llamada al rail: se deniega antes de que exista una cotización.
- 04
One approval linkUn solo link de aprobación
When policy says ask-human, the human gets a single link with the agent's reason and the amount. One tap approves.Cuando la política dice ask-human, el humano recibe un solo link con el motivo del agente y el importe. Un toque aprueba.
- 05
Hash-chained audit logAudit log encadenado con hashes
Each decision links to the previous one and the chain can be verified, so the record cannot be quietly edited.Cada decisión se enlaza con la anterior y la cadena se puede verificar, para que el registro no se pueda editar en silencio.
- 06
Drift signalSeñal de desvío
After the quote, what the rail returned is checked against what the agent asked for. A partial match asks a human; no match is denied.Tras la cotización, lo que devolvió el rail se compara con lo que pidió el agente. Coincidencia parcial: pregunta a un humano; ninguna: se deniega.
- 07
Post-charge reconciliationConciliación post-cargo
When the charge completes, the amount charged is compared with the amount approved. Any mismatch is flagged.Cuando el cargo se completa, el importe cobrado se compara con el aprobado. Cualquier diferencia se marca.
- 08
Kill switchKill switch
Revoke the agent's card — by hand from the console, or automatically on a mismatch. A human must re-enter the card before it can spend again.Revoca la tarjeta del agente — a mano desde la consola, o automáticamente ante una diferencia. Un humano debe volver a cargar la tarjeta antes de que pueda gastar de nuevo.
- 09
Remote MCP + hosted skillMCP remoto + skill alojada
Agents connect over remote MCP (Streamable HTTP) or read the hosted skill. One call buys, with the policy in front.Los agentes se conectan por MCP remoto (Streamable HTTP) o leen la skill alojada. Una llamada compra, con la política enfrente.
Early accessEarly access
Join the waitlistÚnete a la lista
Get notified when the control plane is ready for early access. Built for Security / Platform / SRE or CTO of AI SaaS (5–50) who already have agents with payment tools and need an auditable gate before production.Te avisamos cuando el plano de control esté listo para early access. Hecho para Security / Platform / SRE o CTO de AI SaaS (5–50) que ya tienen agentes con herramientas de pago y necesitan un gate auditable antes de producción.
No real money — try the policy preview.Sin dinero real — prueba la vista previa de política.FAQFAQ
Common questionsPreguntas frecuentes
Does agente.cash hold or move money?¿agente.cash custodia o mueve dinero?
No. It is not a wallet, bank, custodian, or PSP. It is a policy control plane that decides whether an agent may spend — and leaves the trail. Funds stay with whatever payment tools you already use.No. No es wallet, banco, custodio ni PSP. Es un plano de control de políticas que decide si un agente puede gastar — y deja el rastro. Los fondos permanecen en las herramientas de pago que ya uses.
What if the agent already paid?¿Y si el agente ya pagó?
The payment rail does not allow reversing the charge, and agente.cash does not promise to. It compares what was charged against what was approved and, if it does not match, revokes the agent's card so it cannot spend again.El rail no permite reversar el cargo, y agente.cash no promete hacerlo. Compara lo cobrado contra lo aprobado y, si no cuadra, revoca la tarjeta del agente para que no pueda volver a gastar.
Can I use it with real money in production today?¿Puedo usarlo con dinero real en producción hoy?
Not yet. Today the gateway decides in front of Reap's sandbox: real merchant catalogs and checkouts, no real money. Real money rails are out of scope for this phase.Todavía no. Hoy el gateway decide frente al sandbox de Reap: catálogos y checkouts reales de comercios, sin dinero real. Los rieles de dinero real quedan fuera de esta fase.
Who is this for?¿Para quién es?
Security / Platform / SRE or CTO of AI SaaS companies (about 5–50 people) who already have agents with payment tools and need an auditable control plane before production.Security / Platform / SRE o CTO de empresas AI SaaS (unas 5–50 personas) que ya tienen agentes con herramientas de pago y necesitan un plano de control auditable antes de producción.
Is it self-hosted?¿Es self-hosted?
Yes — the policy gateway is a single service you can run yourself. The live demo runs our hosted instance in front of Reap's sandbox, so you can try it without installing anything.Sí — el policy gateway es un solo servicio que puedes correr tú. La demo en vivo usa nuestra instancia alojada frente al sandbox de Reap, así que puedes probarla sin instalar nada.
How does a human approve?¿Cómo aprueba un humano?
With one link. When policy says ask-human, the agent hands the human a single approval link that shows the agent's reason and the amount; one tap approves and hands off to the payment rail's confirmation page. No Slack or extra tooling required.Con un link. Cuando la política dice ask-human, el agente le da al humano un solo link de aprobación que muestra el motivo del agente y el importe; un toque aprueba y pasa a la página de confirmación del rail de pago. Sin Slack ni herramientas extra.
Aren't native Stripe / Ramp controls enough?¿No bastan los controles nativos de Stripe / Ramp?
If one rail’s native controls cover your whole agent stack, you may not need a sidecar. agente.cash is for teams that want shared policy-as-code and an audit trail across agent spend tools.Si los controles nativos de un solo rail cubren todo tu stack de agentes, puede que no necesites un sidecar. agente.cash es para equipos que quieren policy-as-code compartido y un rastro de auditoría entre tools de gasto de agentes.