laso

← All agent guides

How do I let my AI agent buy something online?

Last reviewed: August 2026

The short answer

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.

Side by side

Laso and Crossmint for buying something online, as of October 2026. Crossmint facts are from Crossmint’s own docs linked in the sources below; check them for current terms and fees, which its pages did not state.
LasoCrossmint
Buying with the holder’s own cardPOST /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 DoorDashAgent 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 approvesThe holder approves every order with their passkey on their own device. A confirm only places the cart whose hash it namesThe 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 methodsA 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 cardAny holder. Saving a card needs no identity verification, and the first saved card creates the card accountThe user registers a card in your app. Card limits are enforced by the network on supported card rails
Getting startedFree routes with a Bearer token from /auth. The agent reads SKILL.md and startsStaging is self-serve. Per its docs, production use of the encrypted card fallback in your own checkout means contacting Crossmint
CostSaved-card purchases are free. The prepaid card has no fee, so you pay the amount loadedNot 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

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

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.