Zum Hauptinhalt springen

Documentation Index

Fetch the complete documentation index at: https://docs.getovra.com/llms.txt

Use this file to discover all available pages before exploring further.

Eine Policy ist ein JSON-serialisierbares Rule-Set, an einen Agent gebunden. Genau eine Policy pro Agent, mutable. Die Policy-Engine bewertet eine Policy bei jedem Intent, Grant, Issue, Redeem und Checkout — Pure Function, deterministisch, voll testbar. Agents können ihre Policy lesen aber niemals modifizieren. Modifikation ist nur über Dashboard oder API-Key möglich — Agent-Tokens bekommen immer 403.

Enforcement-Levels

LevelVerhalten
enforceTransaktion blockieren. Returnt policy_denied.
approveErlauben aber für menschliche Genehmigung flaggen.
warnAdvisory loggen; Transaktion läuft weiter.

Feld-Referenz

Limits

FeldTypNotizen
maxTransactionEurosnumberPer-Transaction-Cap
dailyLimitEurosnumberUTC-Tag rolling Sum
weeklyLimitEurosnumberISO-Woche, Reset am Montag
monthlyLimitEurosnumberKalendermonat
autoApproveLimitEurosnumberDarunter kein Mensch nötig
requireApprovalAbovenumberDarüber Mensch erforderlich

Merchant + Geo

FeldTypNotizen
merchantAllowliststring[]Allowlist von Merchant-Namen
merchantBlockliststring[]Blocklist
allowedMccsstring[]MCC-Codes
blockedMccsstring[]MCC-Codes
allowedCountriesstring[]ISO 3166-1 Alpha-2
blockedCountriesstring[]ISO 3166-1 Alpha-2
lockToFirstMerchantbooleanKarte an ersten gesehenen Merchant binden

Zeit + Cooldown

FeldTypNotizen
activeHoursStart / activeHoursEndint 0–23UTC-Stunden-Window
timezonestringIANA-tz-String
allowedDaysenum[]monsun
cooldownMinutesintMin Minuten zwischen Belastungen

Lifecycle

FeldTypNotizen
expiresAfterMinutesintPolicy auto-expirieren
expirationActionenumfreeze · close · notify
maxUsageCountintKarte nach N Belastungen sperren

Required Behavior

FeldTypNotizen
requireIntentbooleanSacred — Default true, niemals stillschweigend abgeworfen
requireAttestationbooleanSigned Attestation pro Charge erforderlich
attestationWindowMinutesintValidity-Window für Attestation
amountTolerancePercentnumberErlaubte Abweichung Actual vs Expected

Policy erstellen

curl -X POST https://api.getovra.com/policies \
  -H "Authorization: Bearer $OVRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Nur Subscriptions",
    "description": "Recurring SaaS, sub EUR 250",
    "enforcementLevel": "enforce",
    "maxTransactionEuros": 250,
    "monthlyLimitEuros": 1000,
    "merchantAllowlist": ["hetzner.com", "openai.com", "anthropic.com"],
    "allowedCountries": ["DE", "US", "GB"],
    "autoApproveLimitEuros": 50
  }'

Policy updaten

curl -X PATCH https://api.getovra.com/policies/po_... \
  -H "Authorization: Bearer $OVRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "monthlyLimitEuros": 1500 }'
Updates propagieren live — auch auf die card-issuer-native Control-Surface.

Pre-built Presets

policy-presets.ts shippt Templates für gängige Patterns:
Allowed MCCs: 4111, 4112, 4131, 4511, 7011, 7012. Country-Allowlist matcht deine Reise-Länder. Hartes Tageslimit.
Merchant-Allowlist bekannter SaaS-Provider. lockToFirstMerchant true. Monatslimit.
MCC 5734/5735/7372 (Software). Per-Transaction-Ceiling. Auto-Approve sub-€20.

Risk-Thresholds (per Policy)

Du kannst die Default-70/85/95-Risk-Thresholds per Policy überschreiben:
curl -X PATCH https://api.getovra.com/risk/config \
  -H "Authorization: Bearer $OVRA_API_KEY" \
  -d '{
    "thresholdReview": 60,
    "thresholdDeny": 80,
    "thresholdFreeze": 95,
    "autoFreezeEnabled": false
  }'
Constraint: thresholdReview < thresholdDeny < thresholdFreeze. Siehe Steuerung für Risk-Engine-Details.

Surfaces

SurfaceCapability
REST/policies, /risk/config, /risk/violations
SDKovra.policies.*
MCPovra_policy (read-only)
Dashboard/dashboard/policies, /dashboard/risk

Weiter

Steuerung

Die zwei Engines die Policy und Risk gemeinsam lesen.

Intents

Wogegen Policy-Decisions getroffen werden.

Karten

Wie Policy auf card-issuer-native Controls synct.