> ## Documentation Index
> Fetch the complete documentation index at: https://learn.orbexa.io/llms.txt
> Use this file to discover all available pages before exploring further.

# ACP protocol architecture and core concepts

> ACP protocol architecture explained — four-party model, two independent systems, Checkout state machine, and Delegate Payment flow.

# 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)
```

| Participant          | Role                                                        | Example         |
| -------------------- | ----------------------------------------------------------- | --------------- |
| **Buyer**            | Consumer who initiates a purchase intent                    | ChatGPT user    |
| **Agent**            | AI that executes commerce operations on behalf of the buyer | ChatGPT         |
| **Business**         | Merchant providing products and checkout services           | Online retailer |
| **Payment Provider** | Securely processes payment credentials                      | Stripe          |

## 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:

| Status                    | Description                                                   |
| ------------------------- | ------------------------------------------------------------- |
| `incomplete`              | Session just created, information is incomplete               |
| `not_ready_for_payment`   | Missing required information (address, shipping method, etc.) |
| `requires_escalation`     | Requires human intervention                                   |
| `authentication_required` | Requires 3DS or other identity verification                   |
| `ready_for_payment`       | All information present, ready to pay                         |
| `pending_approval`        | Awaiting approval                                             |
| `complete_in_progress`    | Payment is being processed                                    |
| `completed`               | Transaction complete                                          |
| `in_progress`             | Processing                                                    |
| `canceled`                | Canceled                                                      |
| `expired`                 | Expired                                                       |

## 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 Amount          | ACP Value | Currency |
| ---------------------- | --------- | -------- |
| \$79.99                | 7999      | USD      |
| \$49.50                | 4950      | USD      |
| EUR 29.00              | 2900      | EUR      |
| JPY 1000 (no decimals) | 1000      | JPY      |

```json theme={null}
{
  "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

| Dimension       | Traditional E-Commerce    | UCP                           | ACP                                         |
| --------------- | ------------------------- | ----------------------------- | ------------------------------------------- |
| Product Display | Merchant's own website    | AI agent calls merchant API   | ChatGPT surfaces from Feed data             |
| Data Control    | Entirely on merchant side | Merchant side (API endpoints) | Pushed to OpenAI + merchant-hosted Checkout |
| Payment         | Direct payment gateway    | Payment Token Exchange        | Delegate Payment (vault token)              |
| Orders          | Merchant system managed   | Standardized Order API        | Order returned after Checkout completion    |

***

**Next chapter**: [Product Data Format](/en/book-4/ch2-product-data) — Complete field specifications for Product objects, Variants, pricing, media, and availability
