From ucp-agentic-commerce
Implements UCP Checkout REST API: create/get/update/complete/cancel sessions with headers, idempotency, status transitions, negotiation, and error handling. For UCP REST endpoints/clients.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin ucp-agentic-commerceThis skill is limited to using the following tools:
**Fetch live spec**: Web-search `site:ucp.dev specification checkout-rest` and fetch the page for the exact current endpoint shapes, required headers, request/response schemas, and status codes.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Fetch live spec: Web-search site:ucp.dev specification checkout-rest and fetch the page for the exact current endpoint shapes, required headers, request/response schemas, and status codes.
Also fetch https://ucp.dev/specification/reference/ for all data type definitions (Buyer, LineItem, Total, Message, etc.).
| Operation | HTTP | Path | Idempotent? |
|---|---|---|---|
| Create Checkout | POST | /checkout-sessions | Yes (via Idempotency-Key) |
| Get Checkout | GET | /checkout-sessions/{id} | Naturally |
| Update Checkout | PUT | /checkout-sessions/{id} | Yes (full replace) |
| Complete Checkout | POST | /checkout-sessions/{id}/complete | Yes (via Idempotency-Key) |
| Cancel Checkout | POST | /checkout-sessions/{id}/cancel | Yes (via Idempotency-Key) |
UCP-Agent: Platform's profile URI in RFC 8941 structured field format — profile="https://..."Idempotency-Key: UUID for mutating operations; Business caches 24+ hoursRequest-Id: UUID for distributed tracingRequest-Signature: Cryptographic signature for request integrity verificationContent-Type: application/jsonincomplete → requires_escalation → ready_for_complete → complete_in_progress → completed
| | | |
+---------------+--------------------+----------------------+--------→ canceled
The canceled state is reachable from any non-terminal state (incomplete, requires_escalation, ready_for_complete, complete_in_progress).
The agent's job is to drive the session from incomplete to ready_for_complete by resolving messages, then call complete.
Every response includes a ucp object with the negotiated version and capabilities. The Business computes the intersection of its own capabilities with the Platform's profile, prunes orphaned extensions, and returns only what both sides support.
Responses include a messages array. Each message has:
type: error / warning / infocode: Machine-readable error codecontent: Human-readable descriptionseverity: recoverable / requires_buyer_input / requires_buyer_review (these are the 3 formal enum values; note: escalation appears in some spec sections but is NOT part of the formal severity enum — this is a spec inconsistency)path: JSONPath pointing to the problematic fieldAgent behavior by severity:
recoverable → Agent fixes automatically (e.g., update with missing address)requires_buyer_input → Ask the human userrequires_buyer_review → Show totals/terms for human confirmationescalation → Redirect to continue_urlBusiness (merchant server):
UCP-Agent header and fetch platform profile for negotiationIdempotency-Key — return cached response if duplicateucp object + full session state + messagesPlatform (agent client):
/.well-known/ucpUCP-Agent header with own profile URIstatus and messagesready_for_complete: acquire payment credential, call completerequires_escalation by surfacing continue_url to userAll amounts are integers in minor currency units (e.g., $29.99 = 2999). Never use floating point.
All UCP REST endpoints MUST be served over HTTPS with minimum TLS 1.3.