Rightshold™ Sign up

Answers · AI crawlers

How do I let a headless-browser AI shopping agent complete checkout on my store without turning off bot protection?

Last updated

TL;DR: Don't lower bot protection for everyone or allowlist a user-agent like HeadlessChrome; make a narrow exception for agents that prove who they are. Require a verified HTTP Message Signature (Web Bot Auth) on the checkout path, accept only signers you choose, reject expired or replayed signatures, and let only those requests skip the bot challenge on cart and checkout. Keep payment authentication, fraud screening and rate limits on for them. The card networks are building on the same base: Visa's Trusted Agent Protocol (October 14, 2025) and Mastercard's Agent Pay use Web Bot Auth signatures, with registered agents' keys in network-hosted directories, a tag that says whether the agent is browsing (agent-browser-auth) or paying (agent-payer-auth), and a nonce against replay, per Cloudflare's October 24, 2025 post. gate_check verifies standard Web Bot Auth signatures (tag web-bot-auth) for free; it doesn't validate the Visa or Mastercard tags or track nonces.

What should I check, step by step?

1. Decide which agents may buy. Pick named signers (an agent vendor, a remote-browser platform, or agents registered with a card network) rather than "anything headless." A user-agent string is not a credential.

  1. Require a signature on the routes that matter: add-to-cart, checkout, payment and order placement. Unsigned automation on those routes keeps your current challenge or block.
  2. Verify properly: the Signature-Input and Signature headers are present, the key comes from the signer's HTTPS key directory, the current time is between created and expires, the nonce hasn't been seen before, and the tag fits the step (Cloudflare lists these checks for Trusted Agent Protocol and Agent Pay).
  3. Scope the exception. On Cloudflare a Skip rule can bypass rate limiting rules, Managed Rules and Super Bot Fight Mode, but not Bot Fight Mode on the Free plan. Skip only the bot challenge for verified signers on checkout paths, and place the rule above the rules it should bypass.
  4. Keep the money controls on. A verified agent is a known operator, not a trusted card: keep 3-D Secure or your processor's authentication, fraud scoring, address checks and per-agent order and velocity limits.
  5. Tell agents how to pay. Cloudflare's post says the network protocols let a merchant indicate whether it expects a network token, browser-use guest checkout or a micropayment; publish the same in your docs so agents don't fight your checkout UI.
  6. Have a handoff path. When an agent can't pass a step (a passkey, a bank challenge), it should hand the live page to its user rather than retry; retries look like card testing.
  7. Log every exception: signer, keyid, tag, which check passed, path and order id. If a signer misbehaves, remove it from the allowlist without touching anyone else.

Why shouldn't I turn off bot protection so AI shopping agents can check out?

Checkout is where card testing, inventory hoarding and account takeover happen, so it is the last place to relax challenges for all automation. A rule that lets anything headless through also lets through the tools fraudsters use.

What do Visa Trusted Agent Protocol and Mastercard Agent Pay add for merchants?

Visa introduced the Trusted Agent Protocol on October 14, 2025, developed with Cloudflare. Visa says it lets approved agents pass agent intent, consumer recognition (whether the shopper already has an account or history with the merchant) and optional payment information, is built on HTTP Message Signatures, is aligned with Web Bot Auth, and needs minimal changes to merchant checkout pages.

How do I exempt verified AI shopping agents from bot challenges only on checkout?

Order of operations: verify the signature, check the signer is on your list for this path, check the tag fits the step and the nonce is fresh, then skip only the bot challenge. Leave WAF rules for injection and abuse on, and keep a separate rate limit per signer.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “A shopping agent is trying to place an order on my store. Does its Web Bot Auth signature verify for my domain and come from a signer I allow, so it can skip the bot challenge on checkout?”

One-click setup

{
  "tool": "gate_check",
  "arguments": {
    "policy": {
      "domain": "shop.example.com",
      "allowed_signature_agents": [
        "<the agent or remote-browser host you allow>"
      ]
    },
    "request": {
      "method": "POST",
      "url": "https://shop.example.com/checkout",
      "headers": {
        "user-agent": "<as received>",
        "signature-agent": "<as received>",
        "signature-input": "<as received>",
        "signature": "<as received>"
      }
    }
  }
}

Rightshold checks Web Bot Auth signatures and gate policies you send it. It doesn't sit in front of your store, process payments, run fraud screening, validate card-network agent tags or block traffic. Not legal or payments-compliance advice.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'