Zum Hauptinhalt springen

Problemstellung

Agents müssen Zahlungen im Web abschließen, aber Kartendaten dürfen nicht im LLM-Kontext, in Anwendungslogs oder im persistenten Agent-State erscheinen.

Wie Ovra das löst

Ovra Checkout nutzt ein Zwei-Schritt-Token-Modell: Der Agent fordert ein kurzlebiges, einmal nutzbares Fill Token an, das an einen genehmigten Intent gebunden ist, und löst es per Browser-Fill über das Chrome DevTools Protocol ein. Der Agent verarbeitet keine Kartendaten — Ovra löst die Credentials serverseitig auf. Mit dem Übergang zu Visa Network Tokens ist selbst die serverseitige Credential keine rohe PAN mehr. Stattdessen übergibt Ovra ein von Visa ausgegebenes Network Token mit einem transaktionsspezifischen Kryptogramm, das Visa auf Netzwerkebene validiert.

Voraussetzungen

  • Intent-Status approved.
  • Für /checkout/token muss der Intent expectedMerchant enthalten (Domain-Scoping für das Token).

Pfad 1: Browser — POST /checkout/tokenPOST /checkout/fill

  1. Fill Token minten:
curl -X POST https://api.getovra.com/checkout/token \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"intentId": "in_xxx"}'
  1. Wenn die Checkout-Seite des Händlers in Ihrem automatisierten Browser geöffnet ist, rufen Sie Fill mit der DevTools-HTTP-Basis-URL auf (keine ws://-URL im Payload):
curl -X POST https://api.getovra.com/checkout/fill \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"token": "<opaque>", "cdpBaseUrl": "http://localhost:9333"}'
Ovra löst das Token ein, prüft den Page-Host gegen den Intent-Händler und injiziert Kartenfelder per CDP über die API. Bei Network Tokens sind die injizierten Credentials von Visa ausgegebene Tokens — keine rohen PANs — und enthalten ein Kryptogramm für die Authentifizierung auf Netzwerkebene. Der Agent erhält keine Kartendaten. Optional: POST /checkout/detect mit { cdpBaseUrl }, um erkannte Checkout-Struktur und Felder vor dem Fill zu prüfen (auch als MCP ovra_checkout mit action: "detect" verfügbar).

@ovra/pay SDK (Browser)

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

OvraPay.configure({ apiKey: "sk_test_..." });
const result = await OvraPay.checkout(page, { intentId: "in_xxx" });
Das SDK tauscht das Token und führt den Fill im Page-Isolate aus, sodass die Agent-Runtime niemals Kartendaten hält.

MCP

Verwenden Sie ovra_checkout mit action: "token", optional action: "detect", dann action: "fill" mit { token, cdpBaseUrl }. Siehe MCP tools.

Was der Agent sieht vs. was über das Netz geht

Agent context:        intentId → opaque fill token → success/failure
Ovra server:          fill token → Visa network token + cryptogram
Visa network:         network token → real PAN (resolved at VisaNet)
Merchant/acquirer:    network token (never sees real PAN)
Zu keinem Zeitpunkt halten der Agent, Ovra-Logs oder der Händler die echte PAN. Das ist das Zero-Knowledge-Modell.

Merchant-Checkout-Erkennung (Browser-Fill)

Die Auto-Erkennung zielt auf gängige beim Händler gehostete Checkout-UIs — darunter Stripe Elements, Shopify Checkout und Adyen Drop-in — sowie generische Kartenformulare per semantischem Fallback. Ovra hostet diese Checkouts nicht; es erkennt und füllt Felder auf Seiten, die der Händler ausliefert.