AgenticWebScore
Scan

Commerce Protocols · Recommended · High impact

Agent purchase policy

Liability is the open question in agent commerce, and it is a policy decision rather than a technical one: a site that accepts an agent purchase has to decide who carries the cost when the agent is wrong, and publish that decision where an agent can read it.

  • Recommended
  • High impact
  • Draft standard
Agent purchase policy — Property, Value
Property Value
Check idagent-purchase
DimensionCommerce Protocols (15%)
TierRecommended — pool 20 pts
Weight inside tier2
ImpactHigh
MaturityDraft — A published specification that is not yet ratified.
ConditionalYes — scored only on commercial sites
Publishing skillagent-purchase-policy
Standards—

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 reads the policy pages it already holds (/ai-policy, /agent-policy, /terms, /agentic-commerce, /ai) and passes when one page carries a sentence that pairs an agent word with a purchase word — purchase, order, checkout or refund — and grants it to agents. It classifies each such sentence first: a sentence that reads as a prohibition, such as "AI agents must never purchase products", is a refusal and is reported as a partial (warn), never as a pass, because the site did not grant the permission this check measures. A page with only one of the two words does not count, and if no page carries both the check fails outright.

Reproduce it yourself

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

              DOMAIN=shop.example.com
for p in /ai-policy /agent-policy /terms; do printf '%s: ' "$p"; curl -sL "https://$DOMAIN$p" | sed 's/<[^>]*>/ /g' | grep -Eio 'agent|purchase|order|checkout|refund' | sort -u | tr '\n' ' '; echo; done
            

The fix

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

              <!-- /agent-policy : served as HTML at https://shop.example.com/agent-policy -->
<article>
  <h1>Agent policy</h1>
  <h2>Agent-initiated purchases</h2>
  <p>Autonomous agents may search the catalogue and create orders on this site. Accepted
    authorisation: an AP2 mandate signed with the user's passkey, or an ACP shared payment token
    issued for this merchant. Card numbers typed by an agent are never accepted.</p>
  <h2>Liability</h2>
  <p>An order created with a valid mandate is binding on the user who signed it; the agent operator
    is responsible for staying inside <code>scope_amount_max</code>. Orders without a valid mandate
    are cancelled and refunded in full.</p>
  <h2>Spending limits</h2>
  <p>Default ceiling 2,000 USD per order and 10,000 USD per 30 days; write to
    <a href="mailto:agents@shop.example.com">agents@shop.example.com</a> to raise it.</p>
  <h2>Refunds and shipping</h2>
  <p>14-day free returns; see <a href="/returns">/returns</a> for the machine-readable policy.</p>
</article>
            

Related checks

Related checks — Check, Tier, Impact, Same skill
Check Tier Impact Same skill
product-schema — Product/catalog schemaEssentialCritical—
payment-protocols — Agent payment standard support (AP2/ACP/x402/UCP)RecommendedHigh—
ucp-manifest — UCP manifest (/.well-known/ucp)EmergingMedium—
returns — Return and shipping terms machine-readableRecommendedMedium—
agent-analytics — Agent traffic measurementEmergingLow—
inventory-freshness — Inventory and price freshnessRecommendedHigh—
seller-identity — Seller identity declaredRecommendedMedium—
shipping-costs — Shipping cost and delivery declaredRecommendedHigh—