Agentic Commerce Protocol (ACP)
The standard protocol for autonomous agent-to-merchant commerce interactions.
What is ACP?
The Agentic Commerce Protocol (ACP) is an open standard that defines how AI agents discover, negotiate, and purchase from merchants. It enables autonomous commerce where buyer agents can interact with seller agents without human intervention.
Key principles of ACP:
- Semantic over syntactic: Natural language queries instead of keyword searches
- Negotiation-first: Prices are starting points, not fixed values
- Intent-driven: Agents express goals, not clicks
- Tokenized payments: Secure delegation via SPT
Protocol Flow
A complete ACP transaction follows this flow:
- Discovery: Buyer agent fetches the merchant's
manifest.jsonto understand capabilities - Search: Semantic search for products matching buyer intent
- Quote: Request a price quote, potentially with an initial offer
- Negotiate: Multi-turn negotiation until agreement or rejection
- Checkout: Initialize checkout session with agreed terms
- Finalize: Execute payment via Shared Payment Token
Discovery
Every ACP-compliant merchant exposes a manifest at /.well-known/acp/manifest.json:
{ "acp_version": "1.0", "merchant": { "id": "merchant_xyz", "name": "Acme Sports", "capabilities": ["negotiate", "bundle", "subscribe"] }, "endpoints": { "search": "/acp/search", "quote": "/acp/quote", "checkout": "/acp/checkout/init", "finalize": "/acp/checkout/finalize" }, "payment_methods": ["stripe_spt", "paypal_ba"], "supported_currencies": ["USD", "EUR", "GBP"], "policies": { "negotiation_enabled": true, "max_discount_percent": 20, "return_window_days": 30 }}The manifest tells buyer agents what the merchant supports: negotiation capabilities, payment methods, currencies, and policy constraints.
Negotiation
Semantic Search
Unlike traditional keyword search, ACP uses semantic queries that express intent:
POST /acp/search HTTP/1.1Host: acme-sports.agents.hyperfold.ioContent-Type: application/json { "query": "waterproof running shoes for marathon", "filters": { "price_max": 200, "size": "10", "color_preference": ["blue", "black"] }, "limit": 5}Response with semantically matched products:
{ "results": [ { "product_id": "prod_aero_x2", "name": "AeroRun X2 Waterproof", "description": "Professional marathon shoe with Gore-Tex lining", "list_price": 180.00, "negotiable": true, "semantics": { "category": "apparel/footwear", "usage_context": ["marathon", "wet_conditions"], "visual_tags": ["blue", "reflective", "mesh_upper"] }, "availability": { "in_stock": true, "quantity": 45, "shipping_estimate": "2-3 days" } } ], "total_count": 12, "semantic_confidence": 0.94}Price Negotiation
Buyer agents can make offers. The seller agent responds with accept, counter, or reject:
POST /acp/quote HTTP/1.1Host: acme-sports.agents.hyperfold.ioContent-Type: application/json { "session_id": "sess_abc123", "product_id": "prod_aero_x2", "quantity": 1, "offer_price": 150.00, "buyer_context": { "loyalty_tier": "gold", "purchase_history": 12, "urgency": "flexible" }}Counter-offer response with bundle suggestion:
{ "status": "counter_offer", "original_price": 180.00, "counter_price": 162.00, "discount_applied": "10%", "reasoning": "Gold member discount applied. Best available price.", "valid_until": "2025-12-20T12:00:00Z", "bundle_suggestion": { "product_id": "prod_socks_wp", "name": "Waterproof Running Socks", "bundle_price": 25.00, "bundle_total": 179.00, "savings": 26.00 }}valid_until timestamp indicates when the offer expires.Checkout
Once terms are agreed, the buyer agent finalizes the purchase:
POST /acp/checkout/finalize HTTP/1.1Host: acme-sports.agents.hyperfold.ioContent-Type: application/json { "session_id": "sess_abc123", "quote_id": "quote_xyz789", "accepted_price": 162.00, "payment_token": "spt_live_abc123...", "shipping_address": { "name": "John Doe", "line1": "123 Main St", "city": "San Francisco", "state": "CA", "postal_code": "94102", "country": "US" }}The payment_token is a Stripe Shared Payment Token (SPT) that allows the merchant to charge the buyer's payment method without exposing card details.
ACP Manifest Fields
| Field | Type | Description |
|---|---|---|
acp_version | string | Protocol version (currently "1.0") |
merchant.capabilities | array | Supported features: negotiate, bundle, subscribe |
endpoints | object | URL paths for search, quote, checkout operations |
payment_methods | array | Accepted payment types (stripe_spt, paypal_ba) |
policies.max_discount_percent | number | Maximum negotiable discount percentage |