How do I let my AI agent buy something online?
Last reviewed: August 2026
Give the agent a payment method it can use and a limit it cannot change. Either it spends a card the account holder owns, with the holder approving each order, or it pays for a prepaid card loaded with the exact checkout total. Crossmint and Laso both offer the first approach; Crossmint covers any merchant through its checkout API, while Laso also gives the agent a prepaid card it can obtain with no human step.
Three ways an agent can pay at a checkout
Most merchants take cards, so an agent needs one of three things. Each has a different answer to the question that matters, which is who can still say no after the agent decides to buy.
- The holder’s own card, approved per purchase. The agent builds a cart, and the person who owns the card approves the order on their device. Nothing is prefunded, and the worst case is an order the person declines.
- A scoped credential derived from the holder’s card. The person approves a budget once, for an amount, a merchant, and an expiry, and the agent spends inside it.
- A prepaid card the agent buys itself. The agent pays in USDC for a card loaded with the checkout total and enters the number at the merchant. The card is the budget, and no person has to be present.
Side by side
| Laso | Crossmint | |
|---|---|---|
| Buying with the holder’s own card | POST /buy-with-saved-card (beta). The holder saves a card once on the issuer’s page behind a passkey, and the agent describes what to buy in plain language. Covers merchants such as Amazon, Walmart, Target, Best Buy, and DoorDash | Agent Checkouts: “one API to buy, manage carts, and manage subscriptions on any website,” using agentic commerce protocols where a merchant supports them and an optimized browser elsewhere |
| Who approves | The holder approves every order with their passkey on their own device. A confirm only places the cart whose hash it names | The user sets a scoped, revocable allowance. Per its docs, an order intent gives an agent a limited amount to spend before a fixed expiration, and verification happens per order intent |
| Other payment methods | A prepaid card the agent pays for in USDC (GET /get-card, $5 to $1,000, no fee, U.S. merchants), and an international prepaid card (GET /order-intl-card) | Cards saved at a merchant, agent cards from other providers, Klarna, Shop Pay, local methods such as Pix, and non-custodial stablecoin wallets for x402 and onchain payments |
| Who can hold a card | Any holder. Saving a card needs no identity verification, and the first saved card creates the card account | The user registers a card in your app. Card limits are enforced by the network on supported card rails |
| Getting started | Free routes with a Bearer token from /auth. The agent reads SKILL.md and starts | Staging is self-serve. Per its docs, production use of the encrypted card fallback in your own checkout means contacting Crossmint |
| Cost | Saved-card purchases are free. The prepaid card has no fee, so you pay the amount loaded | Not stated on the pages cited here |
When Crossmint is the better fit
Pick Crossmint if you are building a product where your own users save a card in your app and your agent shops across a very wide range of sites, including ones outside the U.S., or pays with methods such as Klarna and Pix. Its checkout API and per-order allowances are designed for an application with its own user accounts, and the wider set of payment methods covers more checkouts than a single saved card does.
When Laso is the better fit
Pick Laso if the agent should be able to get a working card on its own. The prepaid card needs no saved card, no identity documents, and no approval step: the agent pays one x402 request and gets a number, expiry, and CVV. If you want a person in the loop instead, the saved-card route pauses every order for the holder’s passkey. The two can share one agent, and both are plain HTTP calls described in SKILL.md.
What it looks like on the Laso side
Option 1: buy with the holder’s saved card
The holder must have a card saved first. If GET /get-saved-cards returns an empty cards list, call POST /create-saved-card-link and send the returned url to your human. Then ask for what you want to buy.
# 1. Ask. Send delivery_address on this call: a cart is bound to the address it was shown for
curl -X POST "https://laso.finance/buy-with-saved-card" \
-H "Authorization: Bearer $LASO_ID_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"ask": "a 16 oz bag of Colombian ground coffee from Amazon",
"delivery_address": {
"street": "1900 Jefferson St", "city": "San Francisco",
"state": "CA", "zip": "94123",
"phone": "+14155550100", "name": "Ada Lovelace"
}
}'
# A cart comes back with items, total_cents, approved_ceiling_cents, and a hash
# 2. Show the holder the cart. When they agree, confirm that exact cart
curl -X POST "https://laso.finance/buy-with-saved-card" \
-H "Authorization: Bearer $LASO_ID_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"conversation_id":"conv_...","confirm":"<cart hash>","delivery_address":{...}}'
# { "status": "awaiting_approval", "approval_url": "https://.../authorize?id=...", "charge_status": "none" }
# 3. Send approval_url to your human (never open it yourself), then repeat step 2
# { "status": "order_placed", "order_id": "...", "card_last4": "4832", "charge_status": "settled" }
The full loop, including slow turns and the questions the agent may need to relay, is in the saved card purchases guide.
Option 2: pay for a prepaid card
The agent works out the exact checkout total, then orders a card loaded with that amount. With a managed wallet, agentX402Pay in route mode signs and settles the payment, so no private key sits in the agent’s environment.
# Order a $50 prepaid card from the managed wallet
curl https://laso.finance/agentX402Pay \
-H "Authorization: Bearer $LASO_ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{"data":{"userId":"usr_...","route":"get-card","params":{"amount":50}}}'
# The body carries auth.id_token and card.card_id with status "pending"
# Poll every 2 to 3 seconds until status is "ready", then read card_details
curl "https://laso.finance/get-card-data?card_id=$CARD_ID" \
-H "Authorization: Bearer $CARD_ID_TOKEN"
Once status is ready, card_details holds the number, expiry, and CVV to enter at a U.S. checkout. See the prepaid card guide for the response fields, and how to give your AI agent a credit card for why a prepaid card is the usual substitute for a credit line. To cap what the agent can spend overall, see how to cap how much your agent can spend.
Sources
- Crossmint, Agentic commerce
- Crossmint, Virtual cards and order intents
Frequently asked questions
Can an AI agent use my credit card to buy things?
Yes, if you save the card with a provider that lets you approve what the agent spends. On Laso you save the card once behind a passkey and approve each order on your device, so the agent never sees the card number.
How do I let my AI agent shop on Amazon?
Call POST /buy-with-saved-card with a plain-language ask such as “a 16 oz bag of Colombian ground coffee from Amazon” and a delivery_address. It returns a priced cart that your human confirms with their passkey.
How do I let an agent buy something without using my own card?
Have it pay for a prepaid card with USDC. GET /get-card loads exactly the amount you choose, from $5 to $1,000, so the card holds only the checkout total.
How do I stop my AI agent from overspending at checkout?
Put the limit outside the agent. A saved-card order waits for the holder’s approval, and a prepaid card can only spend what was loaded on it.
Can an AI agent buy from stores outside the U.S.?
With Laso, use GET /order-intl-card for an international prepaid card, which is queued and fulfilled rather than instant. The U.S. prepaid card works only at U.S. merchants.
More guides
- How to give your AI agent a credit card — An AI agent cannot pass credit underwriting, but it can issue itself a virtual prepaid card over an API in about a minute. The working pattern, with real requests: x402 payment in, card number out.
- x402 vs AP2 vs ACP vs MPP vs UCP: which should your agent use? — All five agent payment protocols compared honestly: x402 and MPP for machine-to-machine HTTP payments, ACP for ChatGPT checkout, UCP for Google surfaces, AP2 for authorization. Which layer each one is, when to use each, and a worked x402 example.
- x402 vs Stripe Issuing for AI agents — Two real ways to put a card in an AI agent’s hands: Stripe Issuing behind a business account, or x402 card issuance the agent drives itself. An honest comparison of onboarding, funding, controls, and when each wins.
- Issue a virtual card with one x402 call — A complete, runnable walkthrough: pay one x402 request in USDC and receive a virtual prepaid card with number, expiry, and CVV. Real endpoints, real response shapes, error handling included.
- How can an AI agent pay for an API call with USDC? — An AI agent pays for an API call with USDC by answering the API’s HTTP 402 challenge with a signed payment. Two ways to do it: your own wallet with an x402 client, or a managed wallet with a price cap and no private key.
- How do I give an AI agent a bank account? — Two real ways to give an AI agent bank details: a business checking account it can operate (Meow) or a U.S. bank account that converts incoming dollars to USDC in the agent’s wallet (Laso). What each one is, who approves what, and when to pick which.
- How do I cap how much my AI agent can spend? — Cap an AI agent’s spending with limits it cannot raise: a funded balance, a per-payment spend limit set by the account owner, a per-call price cap, and prepaid cards loaded with exactly the amount to spend.
- How do I send money to someone’s debit card from code? — Send USD, EUR, or GBP to a debit card with one API call paid in USDC. No payment processor account: you get a redemption link, the cardholder enters their own card details, and the funds are pushed to the card.
- What are the best ways to pay someone on Venmo or PayPal from an AI agent? — Four ways an AI agent can pay a person on Venmo or PayPal: the PayPal Payouts API, a USDC-paid payout through Laso, a bank or card payout instead, or a human approving each payment. Tradeoffs for each.
- How do I let my AI agent buy a gift card through an API? — An AI agent buys a gift card with two calls: search the catalog for a laso_server_id, then order it with a USDC payment. The redemption code comes back in the same response. Includes a runnable example and the currency gotcha.
- All agent guides, or how Laso compares to the alternatives
Try it: connect a wallet at laso.finance and you'll have a card, gift card, or payout in minutes.
Building an agent? Point it at laso.finance/SKILL.md — it can set itself up.