Skip to main content

Merchant Integration Guide

7.1 Prerequisites

7.2 Step 1: Deploy the UCP Profile

The UCP Profile is the entry point through which AI agents discover your capabilities. It is served at the /.well-known/ucp path.

Profile Requirements

  • HTTPS only: Must be served over HTTPS. HTTP requests should return a 301 redirect to HTTPS.
  • No redirects: HTTPS requests to /.well-known/ucp must not return 3xx redirects. The response must be a direct 200.
  • Cache-Control: Must include Cache-Control: public, max-age=N where N is at least 60 seconds.
  • Content-Type: application/json

Minimal Profile (Product Discovery Only)

Full Profile (All Capabilities)

7.3 Generating Signing Keys

Generate an ES256 (P-256) key pair using OpenSSL:
Security reminder: The private key (ucp-signing-key.pem) must be stored securely on the server. It must never appear in the Profile, source code repositories, or logs. Only the public key information (x and y coordinates) is published in the Profile’s signing_keys array.

7.4 Four-Phase Integration Path

Phase 1: Profile + Product Catalog (1 day)

The minimum viable integration. Deploy the /.well-known/ucp Profile and a product search API:
Value of this phase: AI agents can discover your UCP Profile, search your catalog, and display your products to users.

Phase 2: Checkout Capability (2-3 days)

Build on Phase 1 by implementing the checkout API — five operations (Create / Get / Update / Complete / Cancel) and a six-state state machine. Requires payment processor integration. Key implementation points:
  • CRUD endpoints for checkout sessions
  • State machine transition logic
  • Payment processor integration (declare supported processors via payment_handlers)
  • ISO 4217 monetary amount handling

Phase 3: Identity Linking (2-3 days)

Implement an OAuth 2.0 authorization server:
  • /.well-known/oauth-authorization-server metadata endpoint
  • Authorization endpoint (/oauth/authorize)
  • Token endpoint (/oauth/token)
  • Revocation endpoint (/oauth/revoke), following RFC 7009
  • PKCE (S256) support

Phase 4: Order Management + Webhooks (2-3 days)

  • Order query API
  • Fulfillment event tracking
  • Adjustment operations (returns / refunds)
  • Webhook notifications using RFC 9421 signatures (requires publishing JWK signing keys in the Profile)

7.5 Declaring Payment Handlers in the UCP Profile

The payment_handlers array lists the payment processors you accept, using reverse-DNS naming:
AI agents perform capability negotiation to determine mutually supported payment processors, then complete payment token exchange through a three-step lifecycle: negotiate, acquire, and complete.

7.6 HTTP Response Header Requirements

UCP endpoints should return the following HTTP headers:
For the Profile endpoint (/.well-known/ucp), the Cache-Control max-age must be at least 60 seconds. A value of 3600 seconds (1 hour) is recommended.
Next chapter: Platform Integration Guide — Capability negotiation algorithm, extension mechanisms, and multi-platform strategies