# Agent payment protocol support: AP2, ACP, x402, and UCP

> Agent payment standard support (AP2/ACP/x402/UCP): The least-implemented surface in the rubric. The fix: declare agent payment standard support.

- Source: /checks/payment-protocols
- Site: AgenticWebScore
- Language: English

---
The least-implemented surface in the rubric. Accepting an agent payment means choosing a standard and changing a checkout, which is a business decision most sites have not made yet.

| Property | Value |
| --- | --- |
| Check id | `payment-protocols` |
| Dimension | Commerce Protocols (15%) |
| Tier | Recommended — pool 20 pts |
| Weight inside tier | 3 |
| Impact | High |
| Maturity | Draft — A published specification that is not yet ratified. |
| Conditional | Yes — scored only on commercial sites |
| Publishing skill | `agent-payments` |
| Standards | AP2, ACP, x402, UCP |

## What the scanner requests

- `/.well-known/ucp`
- `/.well-known/ucp.json`

It also reads documents it has already fetched: `$home`.

## What is measured

Conditional: reported n/a unless the scanner has already detected a commercial signal (Product/Offer JSON-LD, add-to-cart or buy-now copy, a cart/checkout link). It then fetches /.well-known/ucp plus the policy pages it already holds (/ai-policy, /agent-policy, /pricing, /agentic-commerce, /developers, /docs, /faq), strips their tags and counts distinct signals naming AP2, ACP, x402 or UCP - a reachable UCP manifest and a sentence that grants agent purchasing also count, while a sentence that prohibits it does not - a refusal is classified first and named in the detail as the declared policy it is, never silently counted as support - where two or more signals pass, exactly one is a partial (0.7) and none fails.

## Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

```bash
DOMAIN=shop.example.com
for p in /.well-known/ucp /ai-policy /pricing /docs; do printf '%s: ' "$p"; curl -sL "https://$DOMAIN$p" | grep -Eoi '\b(AP2|ACP|x402|UCP)\b' | sort -u | tr '\n' ' '; echo; done
```

## The fix

This is the artifact to ship. It is the complete change, not a description of one.

```html
<!-- /ai-policy (or /agentic-commerce): declare which agent payment standards you accept -->
<section id="agent-payments">
  <h2>Agent payments</h2>
  <p>Autonomous agents may complete checkout on this site over the standards below.</p>
  <ul>
    <li><strong>AP2</strong> (Agent Payments Protocol, FIDO Alliance): we accept user-signed mandates and
      enforce <code>scope_amount_max</code>, <code>scope_expiry</code> and a merchant allow-list.</li>
    <li><strong>ACP</strong> (Agentic Commerce Protocol, OpenAI + Stripe): checkout sessions and our product
      feed are served from <code>/api/acp/checkout</code>; we remain merchant of record.</li>
    <li><strong>x402</strong> (Coinbase, Linux Foundation): paid endpoints answer
      <code>402 Payment Required</code> with a price and a settlement address in USDC.</li>
    <li><strong>UCP</strong> (Universal Commerce Protocol, Google + Shopify): our capabilities are published
      in <code>/.well-known/ucp</code>.</li>
  </ul>
  <p>Unsigned agents may read the catalogue but cannot create orders; write to
    <a href="mailto:agents@shop.example.com">agents@shop.example.com</a> for sandbox credentials.</p>
</section>
```

> The scanner strips tags and matches the standard names as plain text, so write AP2, ACP, x402 and UCP verbatim — a logo or a link to someone else's spec page is invisible to it.

## Standards referenced

- `AP2`
- `ACP`
- `x402`
- `UCP`

## Related checks

| Check | Tier | Impact | Same skill |
| --- | --- | --- | --- |
| `product-schema` — Product/catalog schema | Essential | Critical | — |
| `agent-purchase` — Agent purchase policy | Recommended | High | — |
| `ucp-manifest` — UCP manifest (/.well-known/ucp) | Emerging | Medium | — |
| `returns` — Return and shipping terms machine-readable | Recommended | Medium | — |
| `agent-analytics` — Agent traffic measurement | Emerging | Low | — |
| `inventory-freshness` — Inventory and price freshness | Recommended | High | — |
| `seller-identity` — Seller identity declared | Recommended | Medium | — |
| `shipping-costs` — Shipping cost and delivery declared | Recommended | High | — |
