Not on its own. ChatGPT can find a product, compare prices, and fill a cart, but it has no card to pay with. Connect the Authoryze MCP server and ChatGPT can request a purchase, receive a single-use virtual card for that exact amount, and check out inside limits you set on the server, not in the chat.
This post covers what ChatGPT can and cannot do natively, how the Authoryze connector adds payments, how to connect it in Developer mode, what a purchase looks like from the first message to the receipt, and how this differs from Instant Checkout and the Agentic Commerce Protocol. If you use Claude instead, can Claude make purchases covers the same ground for that client.
What ChatGPT can and can't do natively
Out of the box, ChatGPT can research a product, compare options across stores, summarize reviews, and tell you what to buy. In agent mode it can open a store in its own browser, search, and fill a cart. What it cannot do is pay. There is no card attached to your ChatGPT account that the model can spend from, and OpenAI's guidance for agent mode is that you type payment details yourself, in what it calls takeover mode, rather than handing them to the agent.
There was a window where this looked different. In September 2025 OpenAI launched Instant Checkout, which let you buy from participating merchants without leaving the chat. It ran on the Agentic Commerce Protocol, built with Stripe. In March 2026 OpenAI wound it down, according to reporting from CNBC and Forbes, and moved checkout back to merchants' own apps and storefronts. So today the question "can ChatGPT make purchases" has the same two-part answer it had before Instant Checkout. ChatGPT can do everything up to the payment. To do the payment it needs a tool.
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. How to give your AI agent a credit card goes through the options. This post is about the ChatGPT-specific setup.
How the Authoryze connector adds payments
Authoryze is an MCP server. MCP is the protocol ChatGPT uses in Developer mode to call outside tools, and Authoryze exposes four of them. request_purchase submits what ChatGPT 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 ChatGPT how much room it has left under its limits. Each tool is documented in the available tools section of the docs.
The decisions happen on the server. 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 Authoryze, not by ChatGPT. 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, ChatGPT 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 it in Developer mode
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 set up ChatGPT.
- Open Settings, then Security and login, and turn on Developer mode.
- Open ChatGPT Plugins, click the plus button, and name the new plugin Authoryze.
- Under Connection, paste the server URL below, choose OAuth, and click Create.
- Sign in to Authoryze and choose which agent this connection should control.
https://authoryze.ai/api/mcp
OpenAI's Developer mode documentation lists it as available to Pro, Plus, Business, Enterprise, and Education accounts on the web. Free accounts cannot add a custom MCP server. On Business and Enterprise, OpenAI's help center describes a workspace setting that controls whether members can turn Developer mode on, so if the toggle is missing, ask your admin. OpenAI has renamed this surface more than once, so if your account shows Apps or Connectors where this post says Plugins, the steps are the same.
Two details matter here. ChatGPT cannot send a static header, so OAuth is the only way to connect it, and the connection is bound to the agent you pick on the consent screen. And ChatGPT asks you to confirm write actions by default, with an option to remember your choice for the rest of a conversation. Keep that confirmation on. It means you see the merchant and amount that request_purchase is about to send before it goes.
Verify the connection by asking ChatGPT to show you your Authoryze spending summary. If it answers with the caps you set, it works. If it does not, the troubleshooting section covers the common failures, and the ChatGPT section of the docs has the same steps with the URL ready to copy.
What a purchase looks like end to end
Say you ask ChatGPT to renew a domain that expires this week. It finds the renewal page on namecheap.com and sees the price is $15. It calls request_purchase with the merchant domain, the amount, and a justification explaining that the domain lapses in four days. Because you are in Developer mode, ChatGPT shows you that tool call first and asks you to confirm it. Suppose the agent has a $25 auto-approve threshold and namecheap.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.
ChatGPT proceeds to the checkout form. When it reaches the card fields 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. ChatGPT enters them and completes the renewal. Once the merchant 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 a $60 annual hosting plan. That is over the $25 threshold, so the response is pending_review, and you get an email with the merchant, the amount, the justification, and which agent asked. ChatGPT 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 ChatGPT retrieves the card as before. When you deny, ChatGPT gets the reason and stops. Example 2 shows that flow in full.
If ChatGPT passes an idempotency key with the request and the connection 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.
How this differs from Instant Checkout and ACP
Instant Checkout was merchant-side. A store integrated with OpenAI, and you paid inside the chat at that store, with the checkout and the payment handled between ChatGPT and the merchant. It only worked at merchants that had done the integration, and OpenAI ended it in March 2026.
The Agentic Commerce Protocol, or ACP, is the open standard underneath it, and ACP is still live. OpenAI and Stripe maintain the spec. A merchant that implements it can accept a purchase from an agent and receive a delegated payment token scoped to a maximum amount and an expiry. It is a good design for the merchant side of the transaction. It still depends on each merchant adopting it, and it does not give you, the buyer, a rules engine, an approval queue, or an audit log for what your agent is doing.
Authoryze is buyer-side. It works at any merchant that has a card form, because what ChatGPT presents at checkout is an ordinary single-use Visa or Mastercard credential. The rules, the approval step, and the record of every request sit on your side of the transaction and follow the agent to every store. The two approaches are complementary rather than competing. Authoryze vs Stripe Agentic Commerce goes deeper on ACP, and Authoryze vs Stripe Link for agents covers Stripe's buyer-side wallet, with alternatives to Link for agents as a broader survey.
Common questions
Does ChatGPT see my card?
ChatGPT 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.
Which ChatGPT plan do I need?
OpenAI's Developer mode documentation lists Pro, Plus, Business, Enterprise, and Education accounts on the web. The Free plan cannot add a custom MCP server. Your ChatGPT plan is billed by OpenAI and is separate from Authoryze, which charges 1.5% per transaction with a $0.50 minimum and has no subscription.
Does ChatGPT ask me before every purchase?
Twice, in a sense. ChatGPT's own Developer mode confirmation shows you each write tool call before it is sent. Then Authoryze applies your rules. Requests under your auto-approve threshold that pass every rule go through without a second 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 on the Authoryze side too.
Does this work with Codex?
Yes. Codex connects over OAuth from the terminal, or with the agent's API key in an environment variable for scripted runs. The Codex app and IDE extension share the same configuration. The Codex section of the docs has the commands, and the MCP configuration docs cover Cursor, VS Code, and any other client that speaks Streamable HTTP.
Ready to let ChatGPT buy things? Create an Authoryze account, add it in Developer mode, and ChatGPT can make its first purchase in about ten minutes.