The situation

A shopper asks ChatGPT for a pair of trail running shoes, finds a pair from a retailer, and buys them. The shopper is present throughout. The retailer is the , and its name appears on the card statement.Source [1]

What ChatGPT does in this journey changed in 2026. On 2026-03-24 OpenAI expanded ACP to product discovery and let merchants use their own checkout while it focused on discovery.Source [2] Today two checkout paths exist for ChatGPT apps, and they differ in status. External checkout on the merchant’s site is the recommended path and is generally available.Source [3] Checkout inside the is a private beta for select marketplace partners.Source [3] The ACP specification itself is labeled beta, and its core RFCs are Drafts.Source [4, 5, 6]

Actors

  • Shopper, who asks, picks and confirms.
  • ChatGPT, the surface that shows products and, in the beta, the .
  • Merchant’s ChatGPT app, an server with a widget, built on OpenAI’s Apps SDK rather than on ACP.Source [3, 7]
  • Merchant, which owns the catalog, the website checkout and, for Level 1 merchants, a card vault.
  • Feed provider, optional: OpenAI names Salesforce and Stripe as providers that can deliver merchant feeds.Source [2]
  • Merchant PSP, which charges the payment.

Step by step

  1. Push the feed (ACP). In ACP the is hosted by the and called by the merchant.Source [8, 9] A Product needs id and variants, and each Variant needs id and title.Source [10] OpenAI’s own API uses /product_feeds paths and adds promotions.Source [1] OpenAI recommends a full daily file plus API updates during the day.Source [1] Onboarding is limited to approved partners.Source [1]
  2. Ask (no protocol). The shopper describes the shoes.
  3. Discover (ACP). ChatGPT shows products from merchant feeds. OpenAI named Target, Sephora, Nordstrom, Lowe’s, Best Buy, The Home Depot and Wayfair as integrated for discovery.Source [2] Shopify data arrives through Shopify Catalog, and buyers complete purchases on the merchant’s store.Source [2]
  4. Open the app (Apps SDK). ChatGPT calls the merchant’s server and the widget shows the offer.
  5. Path A: link out. The app sends the shopper to the merchant’s checkout.Source [3]
  6. Path A: pay on the site (no protocol). The merchant’s normal web checkout runs.
  7. Path A: authorize (card rails). The merchant’s PSP authorizes as for any web order. Path A ends here.
  8. Path B: open the sheet (Apps SDK, beta). The widget calls requestCheckout.Source [3]
  9. Path B: confirm. The shopper picks a saved payment method and buys.
  10. Path B, Level 1 merchants only: (ACP). A merchant with a PCI DSS Level 1 certificate can receive raw card data by implementing the ACP Delegate Payment endpoint, including .Source [3] The request requires payment_method, allowance, risk_signals and metadata.Source [11] The allowance requires reason, max_amount, currency, checkout_session_id, merchant_id and expires_at, and the only reason is one_time.Source [11]
  11. Path B, Level 1: (ACP). The response is HTTP 201 with an id starting vt_.Source [11, 12]
  12. Path B: tool call (Apps SDK). ChatGPT sends a token for the selected payment method to the merchant’s MCP server in a complete_checkout tool call.Source [3] No source read says this token is an allowance-scoped delegated token in the general case.Source [3]? unverified
  13. Path B: . OpenAI lists Adyen, Checkout.com, Fiserv, PayPal, Stripe and Worldpay as supporting processing.Source [3]

Which protocol does what

StepsProtocolObject or messageSpec version
1, 3ACP, Product, Variant2026-04-17
4, 5, 8, 12OpenAI Apps SDK (not ACP) tool calls, requestCheckout, complete_checkoutmonetization guide, read 2026-10-11
6, 7, 13Merchant checkout and card railsweb checkout, authorizationoutside ACP
10, 11ACPPOST /agentic_commerce/delegate_payment, allowance, vt_ token2026-04-17

The latest released ACP version is 2026-04-17.Source [8, 13] The Apps SDK complete_checkout tool is not the ACP MCP binding’s complete_checkout_session.Source [3, 7]

Where controls apply

  • Before authorization. OpenAI excludes categories such as alcohol, weapons and prescription-only medications from ChatGPT shopping.Source [1] ACP carries no signed proof of user intent beyond scoped tokens and the ’s own confirmation UI.Source [6, 14] In path A the merchant’s own checkout holds consent, fraud screening and .
  • At signing. On the path the caps the amount and binds the token to one merchant and one .Source [11] OpenAI may require a PCI attestation of compliance before enabling production Delegate Payment.Source [1]
  • At the edge. ACP pairs authenticate with bilateral bearer tokens, and the specification has no agent registry or public key directory.Source [5, 15] OpenAI asks merchants to allowlist its published egress IP ranges.Source [1]
  • At settlement. The merchant’s PSP charges the payment and enforces the allowance when there is one. ACP defines no token status field and no error code for a token used outside its allowance.Source [11, 12]
  • After the fact. The merchant handles refunds and chargebacks as .Source [1] ACP has no revocation endpoint.Source [6, 16]

What is observable from outside

Very little. A seller’s discovery document at /.well-known/acp.json needs no authentication.Source [17] There is no public explorer, indexer or registry of ACP merchants.Source [18] Feeds, tool calls, tokens and allowances all travel point to point.Source [3] No official ACP transaction volume, GMV or merchant count has been published.Source [2, 4, 14]? unverified Outsiders learn about adoption from announcements, such as OpenAI’s list of discovery retailers.Source [2]

What can go wrong

  • Stale or partial feed. ACP file ingestion replaces the whole product set, so a partial file drops products.Source [8] The shopper sees a wrong price or a missing item until the next feed.
  • Card data in the wrong place. OpenAI’s docs say the feed and checkout specs carry no cardholder data, while direct handles it and is likely in PCI scope.Source [1] Implementations must not log full card numbers or CVC values.Source [5, 12]
  • Delegate Payment errors. The endpoint returns codes such as invalid_card, duplicate_request and idempotency_conflict.Source [11]
  • Who bears the loss. The merchant is and carries refunds and chargebacks.Source [1]
  • Costs. ACP charges no protocol fee; merchants pay their own PSP.Source [1, 19] OpenAI has not published a fee rate for ChatGPT checkout.Source [2, 14]? unverified A report said Shopify merchants would pay OpenAI 4% on ChatGPT checkout sales (reported).Source [20]

Variants

  • History: in its 2025 form. OpenAI announced Instant Checkout with ACP on 2025-09-29.Source [14] At launch it supported single-item purchases from US Etsy sellers.Source [14] Stripe introduced the the same day, the first Spec-compatible implementation.Source [1, 21] That flagship form was scaled back in March 2026.Source [2, 22] Trade press reported an OpenAI spokesperson saying Instant Checkout was moving to apps (reported).Source [22] Do not read it as today’s default path.
  • A full ACP . An can also run ACP’s own checkout: POST /checkout_sessions creates a and complete must return completed with an order.Source [5, 23] That is the protocol as specified; this scenario follows what ChatGPT documents today.

Flow player: From ChatGPT discovery to merchant checkout: an ACP product feed, a ChatGPT app, then external checkout or the payment sheet beta

A merchant pushes its catalog to ChatGPT as an ACP product feed and a shopper finds an item in ChatGPT. The shopper opens the merchant's ChatGPT app. Path A, generally available: the app sends the shopper to the merchant's own checkout. Path B, a private beta for select marketplace partners: the app widget opens the ChatGPT payment sheet and ChatGPT sends a payment-method token to the merchant's MCP server in a complete_checkout tool call. Only a PCI DSS Level 1 merchant that wants raw card data implements the ACP Delegate Payment endpoint, whose request carries an allowance.

Spec version: ACP 2026-04-17; OpenAI Apps SDK monetization guide (read 2026-10-11) (2026-04-17).

Shopper
ChatGPT (agent surface)
Merchant's ChatGPT app (MCP server and widget)
Merchant (site, catalog and vault)
Merchant PSP and card rails

Crosses a trust boundary

Use the left and right arrow keys to step, space to play or pause, Home and End to jump.

Step 1 of 13Merchant (site, catalog and vault) to ChatGPT (agent surface)

Push the product feed (ACP Feed API)

The merchant, or a provider such as Salesforce or Stripe, pushes products to ChatGPT. In ACP the Feed API is hosted by the agent and called by merchants; each Product needs id and variants, each Variant id and title. OpenAI's own feed API uses /product_feeds paths and adds promotions, and onboarding is limited to approved partners. The example uses the ACP specification's path.

Spec: /feeds/{id}/products for step 1 (external link)

HTTP payload. Illustrative example, spec version ACP 2026-04-17; OpenAI Apps SDK monetization guide (read 2026-10-11).
# Illustrative example, ACP spec version 2026-04-17. OpenAI's production API uses /product_feeds paths.
PATCH /feeds/feed_us/products HTTP/1.1
Content-Type: application/json

{
  "products": [
    {
      "id": "prod_1",
      "title": "Trail running shoe",
      "variants": [ { "id": "prod_1_m10", "title": "Men's 10" } ]
    }
  ]
}

Control point: Before authorization: OpenAI's approval of the merchant and its product policy, which excludes categories such as alcohol, weapons and prescription-only medications.

Observable: Private: feeds go from merchant to OpenAI; the products appear publicly only as ChatGPT results.

Spec version ACP 2026-04-17; OpenAI Apps SDK monetization guide (read 2026-10-11) (2026-04-17). Sources: [1], [2], [3], [9], [10], [11], [12]

Step 1 of 13: Merchant (site, catalog and vault) to ChatGPT (agent surface). Push the product feed (ACP Feed API). Crosses a trust boundary.

Which protocol owns each step

  • Agentic Commerce Protocol (ACP)
Steps, owning protocol, control points and outside visibility
StepFrom and toProtocolControl pointObservable from outside
1. Push the product feed (ACP Feed API) (crosses a trust boundary)Merchant (site, catalog and vault) to ChatGPT (agent surface)Agentic Commerce Protocol (ACP) Before authorization: OpenAI's approval of the merchant and its product policy, which excludes categories such as alcohol, weapons and prescription-only medications. Private: feeds go from merchant to OpenAI; the products appear publicly only as ChatGPT results.
2. Ask for a productShopper to ChatGPT (agent surface)Not protocol-specificNonePrivate
3. Show matching products from feedsChatGPT (agent surface) to ShopperAgentic Commerce Protocol (ACP)None Visible to the shopper only; there is no public index of ACP merchants.
4. Open the merchant's ChatGPT app (MCP tool call) (crosses a trust boundary)ChatGPT (agent surface) to Merchant's ChatGPT app (MCP server and widget)Not protocol-specific At the edge: the merchant's MCP server authenticates ChatGPT and applies its own rate limits.Private
5. Path A (generally available): link to the merchant's own checkout (crosses a trust boundary)Merchant's ChatGPT app (MCP server and widget) to ShopperNot protocol-specificNone Private: the merchant sees a referral from ChatGPT in its own analytics.
6. Path A: pay on the merchant's site (crosses a trust boundary)Shopper to Merchant (site, catalog and vault)Not protocol-specific Before authorization: the merchant's own checkout, fraud screening and 3DS.Private
7. Path A: authorize through the merchant's PSP (crosses a trust boundary)Merchant (site, catalog and vault) to Merchant PSP and card railsNot protocol-specific At settlement: PSP and issuer risk decisions.Private
8. Path B (private beta): widget calls window.openai.requestCheckout (crosses a trust boundary)Merchant's ChatGPT app (MCP server and widget) to ChatGPT (agent surface)Not protocol-specificNonePrivate
9. Path B: choose a payment method and buyShopper to ChatGPT (agent surface)Not protocol-specific Before authorization: the shopper's confirmation in ChatGPT's own UI; ACP itself has no user-signed mandate.Private
10. Path B, PCI DSS Level 1 merchants only: POST /agentic_commerce/delegate_payment (crosses a trust boundary)ChatGPT (agent surface) to Merchant (site, catalog and vault)Agentic Commerce Protocol (ACP) At signing: the vault validates the allowance and risk signals before it issues a token; OpenAI may require a PCI attestation of compliance first. Private: card data and the allowance stay between ChatGPT and the merchant's vault.
11. Path B, PCI DSS Level 1: 201 with a vault token id (crosses a trust boundary)Merchant (site, catalog and vault) to ChatGPT (agent surface)Agentic Commerce Protocol (ACP)NonePrivate
12. Path B: complete_checkout tool call with a payment-method token (crosses a trust boundary)ChatGPT (agent surface) to Merchant's ChatGPT app (MCP server and widget)Not protocol-specific At the edge: the MCP server checks that the tool call matches the offer the widget showed. Private: a tool call between ChatGPT and the merchant's server.
13. Path B: charge the token through a supported PSP (crosses a trust boundary)Merchant's ChatGPT app (MCP server and widget) to Merchant PSP and card railsNot protocol-specific At settlement: PSP and issuer risk decisions; for a delegated vault token, the merchant's PSP enforces the allowance, with a PSP-specific error.Private

Sequence diagram: From ChatGPT discovery to merchant checkout: an ACP product feed, a ChatGPT app, then external checkout or the payment sheet beta

Diagram loads when it scrolls into view.

Generated from the flow definition (spec version ACP 2026-04-17; OpenAI Apps SDK monetization guide (read 2026-10-11), 2026-04-17). The player above uses the same data.

Text alternative

Sequence diagram: From ChatGPT discovery to merchant checkout: an ACP product feed, a ChatGPT app, then external checkout or the payment sheet beta. 5 participants: Shopper, ChatGPT (agent surface), Merchant's ChatGPT app (MCP server and widget), Merchant (site, catalog and vault), and Merchant PSP and card rails. 13 steps, 10 crossing a trust boundary, 7 failure branches. Based on several protocols ACP 2026-04-17; OpenAI Apps SDK monetization guide (read 2026-10-11) (2026-04-17). Step 1: Merchant (site, catalog and vault) to ChatGPT (agent surface): Push the product feed (ACP Feed API). This step crosses a trust boundary. If A feed file replaces the whole set with a partial file: Products missing from the file drop out; the ACP file mode replaces the full product set. Step 2: Shopper to ChatGPT (agent surface): Ask for a product. Step 3: ChatGPT (agent surface) to Shopper: Show matching products from feeds. Step 4: ChatGPT (agent surface) to Merchant's ChatGPT app (MCP server and widget): Open the merchant's ChatGPT app (MCP tool call). This step crosses a trust boundary. Step 5: Merchant's ChatGPT app (MCP server and widget) to Shopper: Path A (generally available): link to the merchant's own checkout. This step crosses a trust boundary. Step 6: Shopper to Merchant (site, catalog and vault): Path A: pay on the merchant's site. This step crosses a trust boundary. Step 7: Merchant (site, catalog and vault) to Merchant PSP and card rails: Path A: authorize through the merchant's PSP. This step crosses a trust boundary. If The issuer declines: An ordinary decline on the merchant's site. Step 8: Merchant's ChatGPT app (MCP server and widget) to ChatGPT (agent surface): Path B (private beta): widget calls window.openai.requestCheckout. This step crosses a trust boundary. Step 9: Shopper to ChatGPT (agent surface): Path B: choose a payment method and buy. If The shopper closes the sheet: No token is sent and nothing is charged. Step 10: ChatGPT (agent surface) to Merchant (site, catalog and vault): Path B, PCI DSS Level 1 merchants only: POST /agentic_commerce/delegate_payment. This step crosses a trust boundary. If Card data fails validation: Delegate Payment error invalid_card. If The same Idempotency-Key with a different body: idempotency_conflict. Step 11: Merchant (site, catalog and vault) to ChatGPT (agent surface): Path B, PCI DSS Level 1: 201 with a vault token id. This step crosses a trust boundary. Step 12: ChatGPT (agent surface) to Merchant's ChatGPT app (MCP server and widget): Path B: complete_checkout tool call with a payment-method token. This step crosses a trust boundary. Step 13: Merchant's ChatGPT app (MCP server and widget) to Merchant PSP and card rails: Path B: charge the token through a supported PSP. This step crosses a trust boundary. If A delegated token is used outside its allowance: Should fail, but ACP defines no error code for it; the error is PSP specific. If The issuer declines: An ordinary decline; the app tells the shopper.

  1. Step 1: Merchant (site, catalog and vault) to ChatGPT (agent surface): Push the product feed (ACP Feed API). This step crosses a trust boundary. If A feed file replaces the whole set with a partial file: Products missing from the file drop out; the ACP file mode replaces the full product set.
  2. Step 2: Shopper to ChatGPT (agent surface): Ask for a product.
  3. Step 3: ChatGPT (agent surface) to Shopper: Show matching products from feeds.
  4. Step 4: ChatGPT (agent surface) to Merchant's ChatGPT app (MCP server and widget): Open the merchant's ChatGPT app (MCP tool call). This step crosses a trust boundary.
  5. Step 5: Merchant's ChatGPT app (MCP server and widget) to Shopper: Path A (generally available): link to the merchant's own checkout. This step crosses a trust boundary.
  6. Step 6: Shopper to Merchant (site, catalog and vault): Path A: pay on the merchant's site. This step crosses a trust boundary.
  7. Step 7: Merchant (site, catalog and vault) to Merchant PSP and card rails: Path A: authorize through the merchant's PSP. This step crosses a trust boundary. If The issuer declines: An ordinary decline on the merchant's site.
  8. Step 8: Merchant's ChatGPT app (MCP server and widget) to ChatGPT (agent surface): Path B (private beta): widget calls window.openai.requestCheckout. This step crosses a trust boundary.
  9. Step 9: Shopper to ChatGPT (agent surface): Path B: choose a payment method and buy. If The shopper closes the sheet: No token is sent and nothing is charged.
  10. Step 10: ChatGPT (agent surface) to Merchant (site, catalog and vault): Path B, PCI DSS Level 1 merchants only: POST /agentic_commerce/delegate_payment. This step crosses a trust boundary. If Card data fails validation: Delegate Payment error invalid_card. If The same Idempotency-Key with a different body: idempotency_conflict.
  11. Step 11: Merchant (site, catalog and vault) to ChatGPT (agent surface): Path B, PCI DSS Level 1: 201 with a vault token id. This step crosses a trust boundary.
  12. Step 12: ChatGPT (agent surface) to Merchant's ChatGPT app (MCP server and widget): Path B: complete_checkout tool call with a payment-method token. This step crosses a trust boundary.
  13. Step 13: Merchant's ChatGPT app (MCP server and widget) to Merchant PSP and card rails: Path B: charge the token through a supported PSP. This step crosses a trust boundary. If A delegated token is used outside its allowance: Should fail, but ACP defines no error code for it; the error is PSP specific. If The issuer declines: An ordinary decline; the app tells the shopper.

Source of truth: /feeds/{id}/products (external link) Generated from src/content/flows/multi-chatgpt-discovery-to-checkout.json.

Actors and protocol boundaries

From ChatGPT discovery to merchant checkout: actors and protocol boundaries

Diagram loads when it scrolls into view.

ACP carries the product feed from the merchant to ChatGPT. The ChatGPT app runs on the OpenAI Apps SDK, which is not ACP. Path A, solid lines, is the generally available external checkout on the merchant's own site. Path B, dashed lines, is the payment sheet, a private beta for select marketplace partners; only PCI DSS Level 1 merchants that want raw card data implement ACP Delegate Payment, whose request carries an allowance. No source says the payment sheet token is allowance-scoped in general.

Text alternative

Flowchart. The merchant's catalog pushes a product feed to ChatGPT through the ACP Feed API. The shopper asks ChatGPT and picks a product, and ChatGPT opens the merchant's ChatGPT app, an MCP server and widget, through the Apps SDK. In path A the app sends the shopper an external checkout link; the shopper pays on the merchant's website, which authorizes through the merchant's PSP. In path B, drawn dashed and marked private beta, the app calls requestCheckout in ChatGPT; for PCI DSS Level 1 merchants only, ChatGPT calls the merchant's Delegate Payment vault with an allowance; ChatGPT then sends a complete_checkout tool call with a payment-method token to the app, and the app charges the token through the PSP.

Source of truth: OpenAI Apps SDK monetization guide (read 2026-10-11), with ACP 2026-04-17 (external link) Generated from src/content/diagrams/multi-chatgpt-discovery-to-checkout-context.mmd.

All scenarios

Sources

  1. Agentic Commerce (OpenAI developer documentation; full Markdown export at /commerce/llms-full.txt) (external link)OpenAI. Documentation, primary source. Accessed .
  2. Powering Product Discovery in ChatGPT (external link)OpenAI. Announcement, primary source. Published . Accessed . Archived copy (external link).
  3. Monetization (Apps SDK): external checkout and ChatGPT payment sheet (external link)OpenAI. Documentation, primary source. Accessed .
  4. Agentic Commerce Protocol (ACP) README (external link)OpenAI and Stripe (agentic-commerce-protocol GitHub organization). Repository, primary source. Accessed .
  5. RFC: Agentic Checkout, Merchant REST API (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  6. ACP rfcs directory (status lines of all 15 RFCs) (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  7. MCP Transport Binding for Agentic Checkout (external link)Agentic Commerce Protocol project. Specification, primary source. Published . Accessed .
  8. ACP changelog, version 2026-04-17 (external link)Agentic Commerce Protocol project. Specification, primary source. Published . Accessed .
  9. ACP OpenAPI, Feed API, 2026-04-17 (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  10. ACP JSON Schema, Feed, 2026-04-17 (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  11. ACP JSON Schema, Delegate Payment, 2026-04-17 (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  12. RFC: Agentic Commerce, Delegate Payment (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  13. GitHub commits API for agentic-commerce-protocol/agentic-commerce-protocol (per-path history) (external link)GitHub. Dataset, primary source. Accessed .
  14. Buy it in ChatGPT: Instant Checkout and the Agentic Commerce Protocol (external link)OpenAI. Announcement, primary source. Published . Accessed . Archived copy (external link).
  15. ACP OpenAPI, Delegate Payment, 2026-04-17 (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  16. Shared payment tokens (Stripe Docs; seller and agent variants) (external link)Stripe. Documentation, primary source. Accessed .
  17. RFC: Agentic Checkout, Discovery (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .
  18. Agentic Commerce Protocol website (external link)OpenAI and Stripe. Documentation, primary source. Accessed .
  19. ACP LICENSE (Apache License 2.0) and NOTICE (external link)Agentic Commerce Protocol project. Repository, primary source. Accessed .
  20. Shopify Merchants to Pay 4% Fee on ChatGPT Checkout Sales (external link)PYMNTS. News. Published . Accessed .
  21. Stripe powers Instant Checkout in ChatGPT and releases Agentic Commerce Protocol co-developed with OpenAI (external link)Stripe. Announcement, primary source. Published . Accessed .
  22. OpenAI to pivot from 'Instant Checkout' ChatGPT feature months after launch (external link)Retail Systems. News. Published . Accessed .
  23. ACP OpenAPI, Agentic Checkout, 2026-04-17 (external link)Agentic Commerce Protocol project. Specification, primary source. Accessed .

Source details

    Loading the index.

    Enter open Esc close ? shortcuts