← All posts

Blog

Can Claude make purchases? Yes, here's how

Reagan McCullough

Yes. Claude can make purchases once you connect it to a payment tool. On its own it has no card and no wallet, so it stops at the checkout page. Add the Authoryze MCP connector and Claude can request a purchase, receive a single-use virtual card for that one amount, and pay, inside limits you set and that it cannot change.

This post covers what Claude can and cannot do natively, how the connector adds payments, how to connect it to claude.ai, Claude Desktop, and Claude Code, what a purchase looks like from the first message to the receipt, and what it costs.

What Claude can and can't do natively

Out of the box, Claude can research a product, compare prices across stores, read reviews, and draft the order. With Claude in Chrome it can open a store, run a search, and fill a cart. What it cannot do is pay. There is no card saved in your Claude account and no payment tool built into the model. When Claude reaches a checkout form, it has nothing to type into the card field.

That is a deliberate choice by Anthropic. In early September 2026 it released Claude Commerce Agents, an open blueprint for building shopping agents and merchant agents on Claude. The blueprint covers catalog search, carts, and merchant operations. It does not include a wallet, a checkout, or a payment protocol. Anthropic built the shopping brain and left the payment step to retailers and card networks.

So the question "can Claude buy things" has a two-part answer. Claude can do everything up to the payment natively. To do the payment it needs a tool, and that tool has to be safe, because a model holding a reusable card number holds it in its context window, its logs, and any web page that manages to inject instructions into it. We cover why that matters in how to give your AI agent a credit card. This post is about the Claude-specific setup.

How the Authoryze MCP connector adds payments

Authoryze is an MCP server. MCP is the protocol Claude uses to call outside tools, and Authoryze exposes four of them. request_purchase submits what Claude wants to buy, with the merchant domain, the amount, and a justification. check_status reports whether a request was approved, denied, or is waiting on you. retrieve_card returns a single-use virtual card for an approved request. get_spending_summary tells Claude how much room it has left under its limits. Each tool is documented in the available tools section of the docs.

The important part is where the decisions happen. Every request is checked against rules you set in the dashboard before any card exists. Per-transaction limits, daily, weekly, and monthly caps, a total budget, and merchant allowlists are enforced by the Authoryze server, not by Claude. A request that breaks a rule is denied with a reason. A request that passes and is under your auto-approve threshold is approved on the spot. A request that passes but is over the threshold waits for you, and you approve or deny it from an email or the dashboard. How to set spending limits for an AI agent goes through each rule type.

When a request is approved, Claude calls retrieve_card once and gets a card number, expiry, and CVC that are good for that one amount. The card is issued through Basis Theory over Visa Intelligent Commerce or Mastercard Agent Pay, with Privacy.com available as an alternate rail. It is single-use and short-lived, and the exact expiry comes back with the card. Your real card is enrolled once, tokenized in your browser, and never returned through any tool response. The full threat model is in the security section of the docs, and virtual cards for AI agents explains the card mechanics.

Connecting claude.ai, Claude Desktop, and Claude Code

Before you connect anything, you need an Authoryze account with a fee card, an enrolled funding card, and at least one agent with rules. Those steps are listed in the setup docs and take about ten minutes. Then pick your client.

claude.ai, Claude Desktop, Cowork, and mobile. One custom connector covers all of them, because the connector is attached to your Claude account rather than to a device. Click Add to Claude on the docs page. Claude shows you the connector name and server URL. Confirm them, then sign in to Authoryze and choose which agent this connection should control. In a chat, open the plus menu, choose Connectors, and turn Authoryze on. The manual path is Customize, then Connectors, then Add custom connector, using the server URL from the docs. Anthropic's help center says custom connectors are available on the Free, Pro, Max, Team, and Enterprise plans, and that the Free plan is limited to one custom connector. On Team and Enterprise, an owner adds it under Organization settings.

Claude Code. Run these two commands in your terminal.

claude mcp add --transport http authoryze https://authoryze.ai/api/mcp
claude mcp login authoryze

The first registers the server. The second opens a browser for sign-in, where you choose the agent. Add --scope user to the first command if you want the connection in every project. If you would rather use an API key, which suits headless or scripted runs, pass the agent's key as a bearer header instead of logging in.

claude mcp add --transport http authoryze https://authoryze.ai/api/mcp --header "Authorization: Bearer <AGENT_API_KEY>"

Check the connection with claude mcp list, or /mcp inside a session. The Claude Code section of the docs has the same commands with your key filled in once you are signed in.

Whichever client you use, verify it the same way. Ask Claude to show you your Authoryze spending summary. If it answers with the caps you set, the connection works. If it does not, the troubleshooting section covers the common failures.

What a purchase actually looks like end to end

Say you ask Claude Code to fix a production worker that is hitting free tier limits on Cloudflare. It decides a $5 top-up on the paid plan is the fix. It calls request_purchase with the merchant domain cloudflare.com, the amount, and a justification explaining why the top-up is needed. Suppose the agent has a $10 auto-approve threshold and cloudflare.com is on its allowlist. Authoryze checks each rule, finds the request in bounds, and returns approved with a request id. No card has been issued yet.

Claude opens the Cloudflare billing page. When it reaches the card form it calls retrieve_card once with that request id. The card number, expiry, and CVC come back in that single response, along with the exact time the card expires. Claude enters them and completes the checkout. Once Cloudflare runs the charge, the card is spent. A second retrieve_card call for the same request returns already_retrieved rather than the card again, so even a retry cannot draw twice. The exact payloads are in example 1 of the docs.

Now the same agent wants to renew a $12 GitHub Copilot seat. That is over the $10 threshold, so the response is pending_review, and you get an email with the merchant, the amount, the justification, and which agent asked. Claude polls check_status while it waits. There is no deadline. The request waits until you decide. When you approve, the status flips to approved and Claude retrieves the card as before. When you deny, Claude gets the reason and stops. Example 2 shows that flow in full.

One more detail matters for reliability. If Claude passes an idempotency key with the request and the network drops, it can retry with the same key and get the original result back instead of a second card. How to stop an AI agent from making duplicate purchases explains the mechanism.

What it costs

Authoryze charges 1.5% per transaction with a $0.50 minimum. That fee is billed to a separate card you add through Stripe, and that card never funds a purchase. There is no subscription and nothing is charged when you sign up. On the $5 Cloudflare top-up above, the fee is $0.50. On a $200 purchase, it is $3.

Your Claude plan is separate and billed by Anthropic. The Free plan can connect Authoryze as its one custom connector. Claude Code runs on whatever plan or API billing you already use it with.

Common questions

Does Claude see my card?

Claude never sees your real card. It sees the single-use virtual card for the one purchase it was approved for, because it needs that to check out. That card is scoped to one amount, can be drawn once, and expires on a short window that is returned alongside it. Your enrolled funding card is tokenized in your browser by Basis Theory and is never returned through any tool response. The docs are explicit about this in what we do not claim.

Can I cap how much Claude spends?

Yes, and the caps are enforced on the Authoryze server rather than in Claude's instructions. You can set a per-transaction limit, daily, weekly, and monthly caps, a total budget, and a merchant allowlist per agent, plus aggregate caps across every agent on your account. Claude cannot raise any of them. How to set spending limits for an AI agent covers each one.

Does Claude ask me before every purchase?

That depends on your auto-approve threshold. Requests under it that pass every rule go through without a tap. Requests over it wait for your approval by email or in the dashboard, with no deadline. Set the threshold to zero if you want to approve everything.

What about Claude Code and headless agents?

Claude Code connects over OAuth with two commands, or with an API key passed as a bearer header for scripted runs. Codex, Cursor, VS Code, and any client that speaks Streamable HTTP work the same way. The MCP configuration docs have a config block for each.

Ready to let Claude buy things? Create an Authoryze account, connect it as a custom connector, and Claude can make its first purchase in about ten minutes.

Get started

Try Authoryze free

Connect your AI agent in minutes. Rules enforced server-side, cards issued per transaction, human approval for anything over your threshold.

Can Claude make purchases? Yes, here's how | Authoryze