Agent spend Beta

Check every charge your AI agents make against what they said they were doing

Agents hold cards on Stripe Issuing, Ramp, Brex and Mercury, and pay from your accounts. Veqen gives each agent a mandate it asks before it spends, matches every authorization and payment to what the agent recorded, and catches spend no action explains within minutes. The card can be frozen from the alert, and the evidence is ready for the dispute and for your auditor.

pip install veqen npm i @veqen/sdk

Asking before spending and the audit work on every plan. Continuous protection comes with any paid plan, at no extra charge while agent spend is in beta.

Why it's needed

Each platform guards its own cards, and nobody checks the agent against all of them

What a card's own limit can't tell you

A procurement agent with a $5,000 card limit reads a supplier page with hidden instructions and buys $4,800 of credits from a lookalike merchant. The card platform approves it, because it's under the limit. Researchers have shown agents can be steered into purchases this way, and the platforms' controls only see the card, not what the agent was asked to do.

The same purchase, with Veqen

  1. The charge clears at a merchant this agent has never paid, with no action from the agent to explain it.
  2. Needs action Veqen opens an incident and alerts security in Slack.
  3. Security taps Freeze card. Veqen freezes it through the platform's API, after a second person confirms if you chose that.
  4. Evidence ready Each charge against what the agent recorded and approved goes with the dispute.

The timeline is illustrative. Veqen reads each platform every five minutes; Stripe Issuing shows an authorization as it happens, and Brex shows a transaction once it posts.

Ask before spending

One call before the agent pays

The agent's mandate answers allow, approval or deny. An action over the per-action limit, to a blocked payee, or while the agent is paused is refused. One over the approval amount, past the monthly limit, or to a payee that isn't on its list waits for a person, who answers in Veqen, over the API or from an AI assistant. The action is recorded either way, and matched to the transaction when it appears.

Never moves money
Veqen reads with a read-only credential, and freezing a card uses a separate one you add for that alone.
Fails closed
When the SDK can't reach Veqen, the answer is deny unless you choose otherwise.
Tokens and money together
An agent run's model calls and what it bought sit on the same page.
import veqen

decision = veqen.check_spend("procurement-bot", 120.00, payee="Acme Supplies",
                             purpose="Laptop stand for ticket OPS-412")
if decision.allowed:
    pay()
elif decision.decision == "approval":
    wait_for_a_person(decision.action_id)

What Veqen checks

Every charge, against the agent's own record and its mandate

  • Card spend no action from the agent explains, and actions the agent says it took that no platform ever showed.
  • Spend over the per-action or monthly limit, at a payee the mandate doesn't include or blocks, or by a paused agent.
  • Spend a person was asked to approve and didn't, or that Veqen told the agent not to make.
  • A dormant card waking up, a merchant the agent has never paid, and merchants agents were tricked into paying at other companies.

At month end, the controls report shows each agent's spend, how much of it an action explained, approvals, incidents, freezes and what came back. Card platforms post the purchases to your books themselves, so Veqen gives finance and the auditor the evidence instead of booking them twice.

Frequently asked questions

Does Veqen move or hold money?

No. It reads your card and banking platforms with read-only credentials, and freezing a card or setting its limit uses a separate credential you add for that alone. Money only ever moves on your own platforms.

Which platforms does it read?

Stripe Issuing, Ramp (the funds your agent cards spend from), Brex and Mercury, including Mercury's own agent cards and the ACH and wire payments that leave the account your agents use.

How does Veqen know which spend is an agent's?

A card names its agent in its metadata or its name, or you assign it. A person's card is never matched. Agents tell Veqen what they're about to spend through the SDKs, the API or MCP, and each card transaction is matched to that record.

What happens when something looks wrong?

The transaction gets the rules it broke, a card's findings group into one incident, security hears about it within minutes, and the card can be frozen from the alert, by hand or by the agent's mandate. The evidence shows each charge against what the agent recorded and any approval, for a dispute or an auditor.

Does it replace my spend platform's own card limits?

No, it works with them. Veqen can push each agent's monthly limit into the platform, and it covers what one platform can't see: an agent's tokens and its card spend in one place, cards on several platforms, and a record an auditor can follow.

Why doesn't it post journal entries for agent purchases?

Card platforms already post those purchases to your books, so Veqen leaves them alone and gives you the controls report instead: each agent's spend, what explained it, approvals, incidents, freezes and what came back.

See what your agents spent last month

The free audit reads 30 days from the platforms you connect, with read-only credentials, and shows which agent spend an action explained.