# Your AI agent can now pay for things

No more burning tokens fighting payment forms. New tools for Claude Code's Chrome integration that spin up a virtual card and fill the entire checkout in one call.

## Claude Code can now make payments in the browser

🔒acme.dev/checkout/pro

### Acme Inc.

#### Pro Plan
- **Price**: $29 / month
- **Subtotal**: $29.00
- **Total due today**: $29.00
- **Email**: team@company.com

---

### Card information
- **Card Number**: 4242 4242 4242 7291
- **Expiration Date**: 12 / 27
- **CVC**: 123

---

### Name on card
- AI Agent

### Billing address
- 123 Main St
- New York, 10001

> Subscribe to Acme Pro for the team

---

### Claude's Action
I'll handle that checkout now.

```plaintext
mcp__agent-cards__pay_checkoutrun
amount:29.00
merchant:"acme.dev"
email:"team@company.com"
```

```plaintext
mcp__agent-cards__pay_checkoutresult
Payment form filled successfully
Card•••• 7291($500 balance)
FormPayment form
Fieldsemail, card, name, address
Done. Review the form and click
Subscribe when you're ready.
```

## New MCP tools

### Three tools. One checkout.

- **detect_checkout**: Scans the active tab and detects whether a payment form is present. Returns the fields it found.
- **pay_checkout**: Spins up a virtual card, fills every checkout field, and completes the payment — all in one call.
- **fill_card**: Fills only the card fields with an existing AgentCard. Use when you want to handle the rest yourself.

## How it works

### Four steps, fully automatic

1. **Opens checkout page**: Claude Code navigates to the checkout page in your browser and the extension detects the payment form automatically.
2. **Creates a card**: The MCP server spins up a virtual debit card with just enough balance for the purchase. If a matching card already exists, it reuses it.
3. **Shares it securely**: Card details are passed directly to the browser extension. The LLM never sees the card number.
4. **Completes checkout**: The extension fills every field — card, expiry, CVC, email, name, billing address — and leaves the submit button for you.

## The problem

No more struggling with the Chrome tool. The Chrome tool burns tokens clicking around, fails on iframes, and AgentCard Pay does it in one call.

### Claude's Navigation
I'll navigate to the checkout page.

```plaintext
mcp__chrome__navigaterun
url: "acme.dev/pricing"
```

```plaintext
mcp__chrome__clickrun
selector: "button.upgrade-pro"
```

Now I'll fill the card number field.

```plaintext
mcp__chrome__fillrun
selector: "input[name='cardNumber']"
```

### Error Handling
Element not found. The card input is inside a cross-origin iframe. Let me try accessing the iframe directly.

```plaintext
mcp__chrome__execute_jsrun
"document.querySelector('iframe')
.contentDocument.querySelector('input')"
```

### Failed Attempt
DOMException: Blocked a frame with origin "acme.dev" from accessing a cross-origin frame.

### Final Outcome
I'll handle that checkout now.

```plaintext
mcp__agent-cards__pay_checkoutrun
amount: 29.00
merchant: "acme.dev"
email: "team@company.com"
```

```plaintext
mcp__agent-cards__pay_checkoutresult
Payment form filled successfully
Card•••• 7291($500 balance)
FormPayment form detected
Fieldscard, email, name, address
Done. Review the form and click
Subscribe when ready.
```

## Why AgentCard

### The card infrastructure behind the checkout

- **Speed**: Instant issuance. Card is ready within seconds. No waiting, no manual approval, no delays.
- **Security**: Single-use by default. Each card is locked to the amount you load. Limit exposure per agent, per task, per spend.
- **Coverage**: Works everywhere. Accepted anywhere Mastercard works online. If a site takes Mastercard, your agent can pay.
- **Control**: Human in the loop. You authorize every card creation and every payment before it happens. Agents propose, you approve.
- **Integration**: Built for agents. Expose cards to any MCP-compatible AI with one config block.
- **Privacy**: LLM never sees the card. Card details go directly to the browser extension. The AI model only gets a confirmation — never the number.

## Ready to automate checkout?
[Get started free](/#products) [See the demo](/content/pay#demo/index.html)
