Demo Agent Platform

Agent Console

Walk a UCP purchase end to end: this app plays the shopping platform, the store is CartThrob AI. Run run_20260918114701_8865d24b.

1

Discover the store

Unsigned GET https://store.dev.example.com/.well-known/ucp. The REST endpoint is read from the profile's services["dev.ucp.shopping"].

3

Create a cart

Signed POST /carts with the selected variant, buyer and optional coupon. CartThrob prices it natively.

4

Create a checkout with a shipping destination

Signed POST /checkout-sessions with cart_id and fulfillment.methods[0].destinations. Cart items, buyer and discounts are inherited.

5

Select a shipping option

Signed PUT /checkout-sessions/{id} — a full replace built from the current checkout (server-owned fields removed) with groups[0].selected_option_id set.

Create a checkout with a destination first.

6

Complete the checkout (browser handoff)

Signed POST /checkout-sessions/{id}/complete with {"payment":{}}. No card data is sent: the expected result is requires_escalation with a continue_url.

7

Shopper continues on the store and pays

Complete the checkout (step 6) to get the shopper handoff link.

8

Order status and webhook

Signed GET /checkout-sessions/{id} using the same platform identity. After payment it becomes completed with an order. The store's outbox worker then POSTs a signed order event to https://agent.dev.example.com/webhooks/orders.

Webhooks for this checkout

None received yet. Delivery happens when the store runs php system/ee/eecli.php ct_ai:outbox (normally cron, about once a minute).