Skip to content

TRX-004Buy

Agent checkout endpoint present

Checks whether your shop advertises an agent checkout through a UCP business profile or an ACP discovery document.

What we check

We look for the two published ways a shop tells agents it has a machine checkout. The Universal Commerce Protocol (UCP, version 2026-08-25) uses a business profile at /.well-known/ucp naming the capability dev.ucp.shopping.checkout. The Agentic Commerce Protocol (ACP) uses /.well-known/acp.json with "checkout" in capabilities.services; this discovery document is still an RFC with status Proposal and an unreleased version. Both protocols are versioned by date and still changing.

Why it matters

An agent that sees a checkout capability can place an order through a structured interface instead of pages built for people. If your shop has such a checkout but does not advertise it where agents look, agents treat your shop as if it had none.

How we check

We request /.well-known/ucp and /.well-known/acp.json once each. A UCP profile counts when it answers 200 with JSON containing ucp.version, and advertises checkout when ucp.capabilities names dev.ucp.shopping.checkout (as a key of the capabilities object, or in the older array form). An ACP document counts when it answers 200 with JSON containing protocol.name, and advertises checkout when capabilities.services has an entry containing "checkout". An HTML page at these paths never counts. PASS when either advertises checkout. FAIL when neither does, including a profile with no checkout capability. We SKIP only when every probe was refused on our side (request budget, rate limit or robots rules). We read the documents only; we do not test whether the checkout accepts an agent.

How to fix it

  1. Publish a UCP business profile at /.well-known/ucp naming dev.ucp.shopping.checkout in its capabilities. In UCP 2026-08-25, capabilities is an object keyed by capability name, not an array.
  2. Or implement ACP checkout sessions with delegated payment (Stripe, Adyen or Braintree) and publish /.well-known/acp.json with "checkout" in capabilities.services.
  3. Re-read the current specifications before implementing: both version by date, and ACP's discovery document is still an unreleased proposal.

What good looks like

GET /.well-known/ucp
{
  "ucp": {
    "version": "2026-08-25",
    "capabilities": {
      "dev.ucp.shopping.checkout": [ { "version": "2026-08-25" } ]
    }
  }
}

GET /.well-known/acp.json
{
  "protocol": { "name": "acp" },
  "capabilities": { "services": ["checkout"] }
}

Sources