ACP Project Setup
Before writing code
- Fetch the latest spec version: Web-search
site:github.com agentic-commerce-protocol CHANGELOGfor the current spec version - Fetch the OpenAPI specs: Fetch from
https://github.com/agentic-commerce-protocol/agentic-commerce-protocol/tree/main/spec— download the latest versioned checkout and delegate-payment OpenAPI YAML files - Fetch the get-started guide: Fetch
https://developers.openai.com/commerce/guides/get-started/for onboarding steps - Check for SDK packages: Search PyPI for
agentic-commerce-protocoland npm for ACP-related packages. Note: there is no official standalone SDK — most implementations use the OpenAPI spec directly or reference implementations like Medusa.js
What This Skill Does
Scaffolds a new ACP merchant server project:
- Detect language/framework — Python (FastAPI/Flask/Django), TypeScript (Express/Fastify/Medusa), Go, etc.
- Install dependencies — HTTP framework, JSON schema validation, HMAC library, UUID generation
- Import OpenAPI spec — Download the latest versioned spec from the GitHub repo
- Create configuration — Environment variables for API keys, webhook secrets, API version, PSP credentials
- Stub endpoints — Create route stubs for the 5 checkout operations + webhook receiver
- Set up middleware — Bearer token auth, idempotency key extraction, API version header validation, request logging
Configuration Essentials
These must be externalized (env vars or config file):
ACP_API_KEY— Bearer token for authenticationACP_API_VERSION— Spec version (YYYY-MM-DD format)ACP_WEBHOOK_SECRET— HMAC signing key for webhooksSTRIPE_API_KEY— If using Stripe as PSP for delegated paymentACP_MERCHANT_ID— Merchant identifier for SPT scoping
Project Structure Pattern
merchant-server/
├── config/ # Environment and settings
├── routes/
│ ├── checkout.py/ts # 5 checkout endpoints
│ ├── webhooks.py/ts # Webhook receiver
│ └── health.py/ts # Health check
├── middleware/
│ ├── auth.py/ts # Bearer token validation
│ ├── idempotency.py/ts # Idempotency key handling
│ └── versioning.py/ts # API-Version header validation
├── models/ # Data models from JSON schema
├── services/
│ ├── checkout.py/ts # Business logic
│ ├── payment.py/ts # PSP integration
│ └── inventory.py/ts # Stock management
├── schemas/ # OpenAPI + JSON schemas
└── tests/
Fetch the OpenAPI spec for exact endpoint paths, request/response shapes, and status codes before generating stubs.