Skip to main content

The Checkout Problem

AI agents need to buy things online. But giving an agent your card number is dangerous — it could leak into logs, LLM context, or memory.

Ovra’s Solution

Ovra fills the payment form for the agent. The agent navigates to checkout, calls Ovra, and gets back { success: true }. It never sees PAN or CVV.
import * as OvraPay from "@ovra/pay";

OvraPay.configure({ apiKey: "sk_test_..." });

const result = await OvraPay.checkout(page, { intentId: "in_xxx" });
The SDK:
  1. Fetches a one-time credential from Ovra API
  2. Detects the payment provider (Stripe, Adyen, Shopify, etc.)
  3. Fills the form inside page.evaluate() (isolated from agent code)
  4. Reports success back to Ovra

Option 2: MCP Tool

ovra_checkout_pay({ intentId: "in_xxx", cdpUrl: "ws://localhost:9222" })
Ovra connects to the browser via Chrome DevTools Protocol and fills the form server-side.

Option 3: API Checkout

For API-level payments without a browser:
curl -X POST https://api.getovra.com/checkout/execute \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"intentId": "in_xxx", "targetUrl": "https://example.com/checkout"}'

Supported Payment Providers

ProviderDetectionStatus
Stripe ElementsAuto✅ Supported
Adyen Drop-inAuto✅ Supported
Braintree Hosted FieldsAuto✅ Supported
Shopify CheckoutAuto✅ Supported
Generic card formsSemantic✅ Supported