Skip to main content

ACP Core Concepts

1.1 ACP’s Role in AI Agentic Commerce

ACP (Agentic Commerce Protocol) was created by Stripe as an open standard defining the protocol for programmatic commerce interactions. OpenAI ChatGPT is the first implementer, but ACP is designed to be adoptable by any AI platform. Key distinction: UCP is a universal cross-platform protocol (co-initiated by Google, Shopify, and others), while ACP was created by Stripe and first implemented within the ChatGPT ecosystem.

1.2 The Four-Party Model

ACP defines four participants:
Buyer
  | interacts via AI conversation
Agent (e.g., ChatGPT)
  | calls Checkout API
Business (Merchant)
  | delegates payment processing
Payment Provider (e.g., Stripe)
ParticipantRoleExample
BuyerConsumer who initiates a purchase intentChatGPT user
AgentAI that executes commerce operations on behalf of the buyerChatGPT
BusinessMerchant providing products and checkout servicesOnline retailer
Payment ProviderSecurely processes payment credentialsStripe

1.3 Two Independent Systems

ACP is not a single API. It consists of two entirely independent systems:

System 1: Product Feed (Product Data Sync)

Direction: Merchant to OpenAI platform Merchants push product catalog data to OpenAI. ChatGPT uses this data to surface relevant products in user conversations.
Merchant Product Database
  | SFTP file upload (daily full snapshots)
  | REST API (real-time incremental updates)
OpenAI Product Feed System
  | indexing and understanding
ChatGPT surfaces products in conversations
Supported data submission methods:
  • SFTP push: Parquet (zstd compression) / jsonl.gz / csv.gz / tsv.gz
  • REST API: Feeds + Products + Promotions endpoints

System 2: Agentic Checkout (Transaction Processing)

Direction: AI agent to Merchant server When a user confirms a purchase, the AI agent calls Checkout API endpoints hosted by the merchant to complete the transaction.
User: "I want to buy these shoes"
  |
ChatGPT -> POST /checkout_sessions (create checkout session)
ChatGPT -> POST /checkout_sessions/:id (update shipping address)
  |
Stripe Delegate Payment API -> obtain vault token (vt_...)
  |
ChatGPT -> POST /checkout_sessions/:id/complete (submit payment)
  |
Merchant confirms order

1.4 Checkout Session State Machine

Each checkout session has a status that transitions through the following flow:
incomplete
  |
not_ready_for_payment
  | (shipping address, buyer info completed)
ready_for_payment
  | (payment submitted)
complete_in_progress
  |
completed
Complete status enumeration:
StatusDescription
incompleteSession just created, information is incomplete
not_ready_for_paymentMissing required information (address, shipping method, etc.)
requires_escalationRequires human intervention
authentication_requiredRequires 3DS or other identity verification
ready_for_paymentAll information present, ready to pay
pending_approvalAwaiting approval
complete_in_progressPayment is being processed
completedTransaction complete
in_progressProcessing
canceledCanceled
expiredExpired

1.5 Delegate Payment

ACP solves payment security through the Delegate Payment API. The AI agent never passes raw card numbers to the merchant. Flow:
  1. The AI agent sends payment credentials to Stripe’s POST /agentic_commerce/delegate_payment
  2. Stripe tokenizes the card and returns a vault token (format vt_...)
  3. The AI agent passes the vault token (not the card number) to the merchant’s /checkout_sessions/:id/complete
  4. The merchant uses the vault token to request the actual charge from Stripe
Security guarantee: The merchant never touches raw card numbers. PCI compliance is handled by Stripe.

1.6 Price Format

All monetary amounts in ACP use ISO 4217 minor currency units:
Actual AmountACP ValueCurrency
$79.997999USD
$49.504950USD
EUR 29.002900EUR
JPY 1000 (no decimals)1000JPY
{
  "amount": 7999,
  "currency": "USD"
}
Amounts must be greater than or equal to 0. Currency uses ISO 4217 three-letter codes.

1.7 Capabilities Negotiation

ACP supports capability negotiation between merchants and AI agents. Merchants declare their supported capabilities in the Checkout Session creation response:
  • Payment handlers: Supported payment methods (handler ID, version, spec URL, schema)
  • Interventions: Whether redirects, human intervention, and other interaction modes are supported
  • Extensions: Extension capability declarations (semantic versioning + optional date, JSONPath defines extension fields)

1.8 ACP vs. Traditional E-Commerce vs. UCP

DimensionTraditional E-CommerceUCPACP
Product DisplayMerchant’s own websiteAI agent calls merchant APIChatGPT surfaces from Feed data
Data ControlEntirely on merchant sideMerchant side (API endpoints)Pushed to OpenAI + merchant-hosted Checkout
PaymentDirect payment gatewayPayment Token ExchangeDelegate Payment (vault token)
OrdersMerchant system managedStandardized Order APIOrder returned after Checkout completion

Next chapter: Product Data Format — Complete field specifications for Product objects, Variants, pricing, media, and availability