How do I let an AI agent spend money safely, with limits and a person approving purchases?
By NoClick, checked November 8, 2026. We make NoClick, listed first; every other company’s facts and prices are from its own pages, linked beside them.
The short answer
NoClick caps every agent, user and app in one place, and holds an agent’s purchases for your yes. Elsewhere, pick by what the agent spends on.
- Cap all spend on one platform, with the owner approving purchasesNoClick (we make it): caps per agent, user, app and account, and a domain or number waits for the owner’s tap
- Pay any merchantA virtual card per agent from Stripe Issuing or Lithic (Privacy.com for a solo project), with your own approval step before it’s used
- Buy with a person’s own cardLink Agent Wallet, which asks them to approve each purchase
- Cap model spend per userA budget on each customer’s key, with LiteLLM or OpenRouter
NoClick.Caps and approvals in one place.
NoClick
At what each service costsA platform for agent products where every NoClick charge counts against monthly caps you set per agent, user, key, app and account.
- Best for
- Agent products built on NoClick that need caps per agent and per user, and an owner’s yes before an agent buys a domain or a number or raises a limit.
- Falls short
- Its caps cover spending on NoClick; to pay other merchants, pair it with a card product.
How it works and full pricing
Each spender gets its own monthly cap: a budget on an agent (a sub-agent’s comes out of its parent’s), a cap on each of your users, on each API key, on each app, workspace and channel, and one on the whole account. Caps are checked before work starts: the call that crosses one finishes, the next is refused, and a webhook fires. Fixed-price things (domains, phone numbers) are quoted, then bought under a ceiling you pass. When an agent buys with NoClick’s tools, or asks to raise or remove a limit, the call waits for the account owner: NoClick sends them a link on WhatsApp, iMessage or email naming the exact price or change, and they approve with one tap, no sign-in needed, within 24 hours; the agent never sees the link. Lowering a limit goes straight through, and a policy can hold any tool call for a person.
Every service at what it costs NoClick. A US number is $1 a month plus $1 once; a .com is $12.99 for its first year and $21.99 a year after; buying either needs $5 of funds added. Free includes $1 a day of usage, up to $5 a month, with a 15% fee on funds added; Member is $25 a month with $10 included and a 5% fee.
At a glance.
We compared what each option limits (card charges, model spend or tool calls), whether a limit can be set per user or per agent, whether a person can approve before money moves, whether developers can use it today, and its published price, from each maker’s own pages.
| Option | What it limits | Per user or agent | Person approves | Available | Price |
|---|---|---|---|---|---|
| NoClickours | All NoClick spend | Yes: Agent, user, key, app, account | Yes: The owner taps a link | Yes: Yes | At cost; Member $25 a month |
| Stripe Issuing | Card charges | Yes: Per card or cardholder | Partly: You build it; 2 seconds to answer | Partly: After you apply | $0.10 a card |
| Lithic | Card charges | Yes: Per card or account | Partly: You build it; 6 seconds to answer | Partly: Through sales | Not published |
| Privacy.com | Card charges | Yes: Per card | No: No | Yes: API on paid plans | $5 a month |
| Link Agent Wallet and Shared Payment Tokens | Each purchase | Yes: Per person | Yes: Every purchase | Partly: US and Canada; tokens in preview | Not published |
| Crossmint agentic payments | Card and wallet spend | Yes: Per user | Partly: A limit approved up front | Not stated: Stage not stated | Free tiers, then usage |
| LiteLLM | Model spend | Yes: Per key, user or team | No: No | Yes: Self-hosted | Open source |
| Portkey | Model spend | Partly: Per provider | No: No | Partly: Enterprise only | From $49 a month |
| OpenRouter key limits | Model credits | Yes: One key per user | No: No | Yes: Yes | 5.5% fee on credits |
| LangGraph interrupts | Nothing on its own | Partly: Per thread | Yes: You deliver the request | Yes: Yes | Free |
The options.
Each caps a different thing: a card’s charges, a key’s model spend, or a tool call a person must approve.
Stripe Issuingby Stripe
$0.10 a virtual cardA card issuing API that gives each agent its own virtual card.
- Best for
- A business giving each agent a real card that works at any merchant, with limits set in code.
- Falls short
- You apply and get approved first, a person can’t answer inside the 2-second webhook, and spend totals can lag up to 30 seconds.
How it works and full pricing
Set spending_controls on a card or a cardholder: spending limits per authorization or per period, and allowed or blocked merchant categories and countries. Every charge can also reach your issuing_authorization.request webhook, which has 2 seconds by default to approve or decline it. Stripe’s agent guide suggests a card per agent, or a single-use card per task.
$0.10 per virtual card in the US; Stripe’s pages publish no other Issuing fees
A card issuing API for companies that run their own card program.
- Best for
- Teams building cards into their own product who want to decide every authorization themselves.
- Falls short
- Pricing isn’t public, velocity totals are eventually consistent, and a person can’t approve within the 6-second window.
How it works and full pricing
Velocity limit rules cap the dollar amount or the number of transactions per day, week, month, year or a rolling window, per card or across an account, and merchant category rules allow or block MCCs. Authorization Stream Access sends each authorization to your endpoint, which has 6 seconds to answer.
Not published; contact sales
Privacy.comby Privacy
$5 a month for the APIVirtual cards for individuals, with an API on paid plans.
- Best for
- A solo developer giving one agent a card for a few subscriptions or purchases.
- Falls short
- Built for personal use: no cards per customer of yours, no approval step, and a monthly limit on new cards.
How it works and full pricing
Create single-use or merchant-locked cards with a spend_limit per transaction, per month, per year or for the card’s lifetime; charges above it are declined, and a paused card declines everything.
Plus: $5/month, with API access and 24 new cards a month. Personal ($0) has no API.
Lets an agent pay with a person’s own Link account, one approved spend request at a time.
- Best for
- Consumer agents that buy things with the person’s own card, each purchase approved by that person.
- Falls short
- Agent payments are for US and Canadian customers, Shared Payment Tokens are in preview, and it spends the person’s money, not a budget you set for an agent.
How it works and full pricing
The agent creates a spend request with the amount, the seller and why; the person approves it on Link’s website or app within 30 minutes, and Link returns a one-time card, a Link Pay Token or a Shared Payment Token for that purchase. A Shared Payment Token carries a maximum amount, a currency and an expiry, and can be revoked.
Not published on these docs pages
Sources:docs.stripe.comdocs.stripe.comdocs.stripe.comdocs.stripe.com
Crossmint agentic paymentsby Crossmint
Free tiers, then usageAgent cards, stablecoin wallets and agent checkout behind one API.
- Best for
- Agents that pay from users’ cards or stablecoin wallets, including x402 and MPP machine payments.
- Falls short
- Its pages don’t state a release stage, and a limit is approved up front rather than per purchase unless you build that page.
How it works and full pricing
A user saves a card once and approves a spending limit; card limits are enforced at Visa and Mastercard, wallet limits onchain. In messaging apps the agent sends a link and the user approves on a page you host.
Agent Cards: 1,000 free a month, then volume pricing. Agent Wallets: 5,000 free, then $0.01 per monthly active wallet. Agent Checkout: 1,000 free, then $0.05 each.
LiteLLMby BerriAI
Open source; Enterprise customAn open-source LLM proxy that tracks and caps model spend.
- Best for
- Capping model spend per customer and per key across many model providers, on your own servers.
- Falls short
- Model calls only (no cards, purchases or other tools), budgets need a database, and there’s no approval step.
How it works and full pricing
Set max_budget on a virtual key, an internal user or a team, and a budget for each customer (end user) with max_end_user_budget_id; budget_duration such as 30d resets it. A request over budget is rejected, and budget reservation can reject one that would overshoot.
Open source, self-hosted; Enterprise: custom pricing
An AI gateway with cost and token limits.
- Best for
- Teams already sending model calls through a gateway who want alerts and hard limits.
- Falls short
- Budget limits are Enterprise-only (or select customers), a limit can’t be edited once set, and it covers model calls only.
How it works and full pricing
Set a cost limit in USD or a token limit on a provider integration, reset weekly or monthly, with email alerts before it’s reached; once it’s used up, the key expires.
Developer: free. Production: $49/month. Enterprise: custom. Budget limits are for Enterprise and select Pro customers.
Sources:portkey.aiportkey.ai
OpenRouter key limitsby OpenRouter
5.5% fee on creditsOne API for many models, with a credit limit on each key.
- Best for
- Giving each of your users their own model key with a credit limit, in a few API calls.
- Falls short
- Model calls only, no approval step, and you map keys to users yourself.
How it works and full pricing
Create a key for each customer with the Management API (POST /api/v1/keys) and a credit limit, set limit_reset so it resets on a schedule, and read limit_remaining and usage from the key; a key can be disabled.
Models at the provider’s list price; 5.5% fee when you buy credits (Standard)
Sources:openrouter.aiopenrouter.ai
LangGraph interruptsby LangChain
Free, open sourceA pause point in a LangGraph agent that waits for a person’s input.
- Best for
- Adding an approve-or-reject step to your own agent code before any spending tool runs.
- Falls short
- A building block: you deliver the request to the person yourself, it sets no spending limits, and the node runs again from its start on resume.
How it works and full pricing
Call interrupt() in a node, for example before a purchase tool runs, show the value to a person, and resume with Command(resume=...) on the same thread_id. A checkpointer keeps the graph’s state while it waits.
Open source (MIT license)
Sources:docs.langchain.comgithub.com
Start with a key.
Create an API keyOr paste one prompt into your coding agent. It saves a key to your .env.
Get the prompt in the consoleOr add NoClick’s MCP server to your client.
Questions
Issue it its own virtual card. Stripe Issuing and Lithic let your code set limits per transaction or per period and restrict merchant categories, and Privacy.com’s Plus plan ($5 a month) gives a solo developer an API for single-use and merchant-locked cards. Give each agent its own card, so one agent’s mistake can’t spend another’s budget.
Not inside the card authorization: Stripe gives your authorization webhook 2 seconds by default and Lithic gives it 6, enough for code but not for a person. Get the yes before the payment instead: Link Agent Wallet asks the person to approve each spend request (they have 30 minutes), LangGraph’s interrupt() pauses your own agent until someone resumes it, and NoClick holds an agent’s purchases until the account owner approves them from a link.
For model spend alone, give each customer a budget in LiteLLM or their own OpenRouter key with a credit limit. On NoClick, create the agent inside the user’s scope with budget_usd_per_month and give the user spend_cap_usd_per_month; a usage.recorded webhook reports each charge so your billing can charge them or pause their spending. For cards, Stripe Issuing for platforms issues cards to your customers, through a conversation with Stripe.
Put a hard cap where the calls go out: OpenAI’s project hard spend limits reject requests with a 429 once reached, and LiteLLM, Portkey and OpenRouter cap a key. Also cap each run: a NoClick agent’s turn stops at $1, 30 minutes or 200 steps by default, and a call repeated with the same arguments and result stops running.
Most limits are checked as a charge starts and totals catch up later: Stripe says spend totals can lag up to 30 seconds, Lithic’s velocity totals are eventually consistent, and OpenAI may process some extra usage while a limit updates. NoClick checks caps before work starts, so the call that crosses a cap finishes and the next is refused; leave that margin when you set one.
With card and gateway APIs, whoever holds the secret key can change a limit, so keep that key out of the agent’s reach. On NoClick, an agent connected through MCP, the NoClick assistant included, can only lower a cap or set one where there’s none; raising or removing one waits for the account owner to approve it from a link NoClick sends them.
On NoClick the agent quotes the domain or number, then buys it under a ceiling (max_price_usd for a domain, max_monthly_usd for a number), and a purchase made with NoClick’s agent tools waits until the account owner approves it from a link showing the exact price. Buying either needs $5 of funds added, and the charge counts toward your caps like any other spend. Elsewhere, put the registrar’s or carrier’s purchase call behind your own approval step, such as a LangGraph interrupt.
Open now: Privacy.com, Crossmint (free to start) and the x402 protocol, which is open source with no protocol fees but has no spending limits or approvals of its own. Gated: Stripe Issuing and Lithic need an application or a sales conversation, Link Agent Wallet’s payments are for US and Canadian customers with Shared Payment Tokens in preview, Ramp’s Agent Cards are in early access, and Visa Intelligent Commerce needs Visa’s onboarding and approval for production.