Skip to main content

1. Sign up

Create an account at getovra.com/sign-up. You’ll land in the dashboard in sandbox mode.

2. Create an API key

Go to Secrets in the dashboard and click New Key. You’ll get a test key starting with sk_test_.
export OVRA_API_KEY="sk_test_..."

3. Create an agent

curl -X POST https://api.getovra.com/agents \
  -H "Authorization: Bearer $OVRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "My First Agent"}'
Response:
{
  "id": "ag_xxx",
  "cardId": "ca_xxx",
  "policyId": "po_xxx",
  "cardPanMasked": "****4242"
}

4. Fund the agent

curl -X POST https://api.getovra.com/agents/ag_xxx/fund \
  -H "Authorization: Bearer $OVRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 100}'

5. Create an intent

curl -X POST https://api.getovra.com/intents \
  -H "Authorization: Bearer $OVRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "ag_xxx",
    "purpose": "Buy USB-C Hub",
    "expectedAmountEuros": 29.99,
    "expectedMerchant": "amazon.de"
  }'

6. Pay with the SDK

npm install @ovra/pay
import * as OvraPay from "@ovra/pay";

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

// Your agent navigates to checkout, then:
const result = await OvraPay.checkout(page, { intentId: "in_xxx" });
console.log(result.success); // true
The agent never sees card data. Ovra fills the payment form directly.

Next steps

  • Agents — learn about agent lifecycle
  • Intents — understand the intent system
  • SDK — deep dive into @ovra/pay
  • MCP — set up MCP for Claude/Cursor