Why Per-Task Virtual Cards Don't Scale for High-Volume Agents
The standard advice for giving an AI agent spending power via virtual cards is sensible: issue one card per task, load it with the task budget, revoke it when done. Each card has a hard limit; no card shares credentials with another task; blast radius is contained.
At low volume, this works fine. At high volume, it doesn’t — not because the principle is wrong, but because the implementation overhead compounds faster than you’d expect.

The overhead math
Every virtual card lifecycle — issue, use, revoke — requires approximately 3 API calls to the card provider. That number is constant per task.
| Daily task volume | Card API calls/day | Engineering overhead |
|---|---|---|
| 10 tasks | 30 | Negligible |
| 100 tasks | 300 | Minor |
| 500 tasks | 1,500 | Noticeable |
| 1,000 tasks | 3,000 | Significant |
| 5,000 tasks | 15,000 | Primary engineering concern |
| 10,000 tasks | 30,000 | Bottleneck |
At 1,000 tasks/day, you’re making 3,000 API calls per day that have nothing to do with your agent’s actual work. You’re building and operating a card lifecycle management system.
That system needs to handle:
- Card issuance failures (and retry logic)
- Cards that don’t activate immediately
- Confirmation that revocation succeeded
- Reconciliation of cards that didn’t get revoked properly
- Rate limit management against the card provider’s API
None of this is the agent’s job. All of it becomes your infrastructure problem.
The rate limit problem
Card issuance APIs are designed for human-paced usage — a developer issuing cards manually, or a finance team provisioning cards for employees. They are not designed for agent-paced issuance.
Stripe Issuing, Privacy.com, and purpose-built agent card providers all have rate limits on card creation. The exact limits vary and change, but they’re calibrated for human patterns, not agent pipelines.
An agent pipeline running 50 tasks per hour — not particularly high-volume — may hit rate limits that throttle the entire pipeline. The agent waits. The task queue backs up. The bottleneck is card issuance, not the agent’s capability.
When card issuance is rate-limited, the entire agent pipeline stalls — not because the agent is slow, but because the payment infrastructure can't keep up with agent-paced task execution. The agent's actual work is fast; the card issuance overhead becomes the slowest component in the system.
The audit complexity problem
Each card in the per-task pattern is a separate financial entity. An agent running 1,000 tasks/day generates 1,000 separate card records, each with its own transaction history.
Answering “what did my agent spend yesterday?” requires aggregating across all cards created yesterday, filtering by the agent’s tasks, and reconciling charges against expected spend. This is a non-trivial query at volume.
| Audit question | At 10 cards | At 1,000 cards |
|---|---|---|
| Total spend yesterday | Trivial | Requires aggregation across 1,000 records |
| Which task caused this charge? | Check card notes | Match card ID to task log |
| Did all cards get revoked? | Visual check | Automated reconciliation required |
| Anomaly detection | Manual | Requires statistical tooling |

What works at scale: the IOU token model
The IOU token model sidesteps all of this. Instead of one card per task, there’s one account with one balance. Every tool call — across all tasks, all agents, all tool types — deducts from the balance.
# One-time setup
npx atxp
export ATXP_API_KEY="your-key"
# Fund once
npx atxp fund --amount 100
# Run 1,000 tasks
# Each deducts from the balance automatically
# No card issuance, no revocation, no rate limits
Management overhead at any volume: constant. One API key, one balance, one log.
Audit at any volume: one query.
npx atxp logs --since 24h --format csv
# Returns every tool call, cost, timestamp, task context
"I was shocked how cheap it actually is once you're routing efficiently. The agents that seemed expensive were the ones with unnecessary overhead, not the ones doing a lot of work."
Louis Amira, co-founder, Circuit & ChiselCard issuance overhead is a form of unnecessary overhead. The actual tool call costs are small. The management layer around the cards is where complexity accumulates.
When virtual cards are still the right answer
This isn’t an argument against virtual cards — it’s an argument against per-task card issuance for tool calls at scale.
Virtual cards remain the right choice when:
- The transaction requires a real Visa/Mastercard number (SaaS subscriptions, merchant purchases)
- Frequency is low (under 100 tasks/day)
- Universal card acceptance matters more than operational efficiency
The practical production pattern:
- IOU tokens for all tool calls (web search, image gen, email, code execution, file storage)
- Virtual cards for genuine merchant purchases that require a card number
- Both in the same agent stack, each used where it fits
npx atxp
One balance, zero card overhead. Three payment models compared → · Virtual cards vs IOU tokens → · Spending limits →
Frequently asked questions
When do per-task virtual cards become a problem?
Friction becomes noticeable at 100+ tasks/day. Real engineering overhead starts around 500 tasks/day. At 1,000+, card management complexity exceeds the agent’s actual work for most stacks.
What is the overhead cost of per-task cards?
~3 API calls per card lifecycle (issue, use, revoke). At 1,000 tasks/day: 3,000 card management calls per day, plus retry logic, rate limit handling, and reconciliation.
Do card APIs have rate limits for agent-scale usage?
Yes. Most card issuance APIs are designed for human-paced usage. Agent pipelines running 50+ tasks/hour may hit rate limits that throttle the entire pipeline.
What does the IOU token alternative look like at scale?
One account, one balance, constant management overhead regardless of task volume. Fund once, all tool calls deduct automatically, one log covers everything.
Are virtual cards ever right for high-volume agents?
Yes — for genuine merchant purchases requiring a card number. The scaling problem is specifically with per-task card issuance for tool calls, not cards used for actual purchases.
How do I audit IOU token spend at volume?
npx atxp logs --since 24h returns every tool call, cost, timestamp, and context. One query regardless of volume. What did my agent spend? →