How to give an AI agent a company card safely

What to set up before an AI agent spends on a company card or pays from an account, what a card platform's own limits catch and miss, and how to check every charge against what the agent was asked to do.

By Keyveve, Inc. · Updated 2026-10-28

Agents can hold cards now. Stripe Issuing, Ramp, Brex and Mercury all issue cards an agent can use, and an agent with a card can buy software, credits and supplies on its own. The card platform's limits stop an agent spending past a number, but they can't tell whether a charge under that number was something the agent should have made. Researchers have shown browser agents being steered by hidden instructions on a web page into adding items to a cart and, in some runs, paying for them, so a limit on its own isn't enough.

Give each agent its own card or fund

Never let an agent use a person's card. Give each agent its own virtual card, or on Ramp its own fund, so every charge on it is the agent's and nobody else's. Name the card after the agent ("agent: procurement-bot") or put the agent's name in the card's metadata, so anything that reads the card knows whose it is. For payments by ACH or wire, pay from an account set aside for agents rather than your operating account.

Set the platform's limits, then a mandate on top

Set a monthly limit and, where the platform supports it, merchant category or merchant restrictions on the card itself. Those are enforced by the platform at the moment of the charge, which is the strongest control you have.

Then write down what the agent may do without a person, as a mandate: the most one action may cost, the payees it may pay on its own, the ones it may never pay, and the amount above which a person approves. Card platforms don't know what the agent was asked to do, so this is where you say it.

Have the agent ask first, and record what it does

Before the agent pays, it should ask something outside itself whether the payment fits its mandate, and record the answer. That record, with the amount, the payee and the purpose, is what each charge gets checked against later. An agent that skips the check, or a charge nobody recorded, is then visible instead of buried in the card statement. If the check can't be reached, the safe answer is no.

With Veqen, that is one call:

import veqen

decision = veqen.check_spend("procurement-bot", 120.00, payee="Acme Supplies", purpose="Laptop stand for OPS-412")

Check every charge, every few minutes

Read the card platform's authorizations as they happen and match each one to the action the agent recorded. Treat these as signs that something is wrong: a charge no action explains, a merchant the agent has never paid, a dormant card waking up, a payee outside its mandate, and spend a person was asked to approve and didn't. A statement at month end is too late; card fraud is cheapest to stop in the first hour.

Be able to freeze it from the alert

Decide in advance who may freeze an agent's card and make it one step from the alert. Keep the credential that can freeze cards separate from the read-only one, and ask a second person to confirm if your controls call for it. A frozen card can be unfrozen; a week of unchecked spend can't be undone.

Keep the evidence

When a charge has to be disputed, the card issuer will want to know what was authorized. Keep, for each charge, what the agent recorded before it spent, any approval a person gave, the mandate in force and the timeline of what you did. The same record is what an auditor asks for at year end.

Veqen does all of this for agents on Stripe Issuing, Ramp, Brex and Mercury. See how agent spend works or read the docs.

Veqen watches what your work and coding agents, your product and your teams spend on AI, names who spent each dollar, and stops the spend nobody on your team made. Run a free audit or read the quickstart.