Skip to main content
A card is a virtual Visa issued by Ovra’s regulated EU banking partner. Card data (PAN, CVV) is encrypted with AES-256-GCM at rest and never returned to the agent’s context — the model only ever interacts with a tokenized DPAN derived through the network token service. Multi-card per agent is a first-class concept. You can issue named cards within a single agent (subscriptions, travel, one-off) and the agent picks which one to charge for each transaction.

The card model

Lifecycle

Operations

Issue a card

Card selection at transaction time

Reference a card on every intent. Pass either cardId or cardName (within the agent). Omitting both returns E_CARD_REQUIRED — there is no implicit default card by design.

DPAN — the only card identifier the merchant sees

The DPAN (Device Primary Account Number) is a network token issued by Visa’s tokenization service through the banking partner. It’s:
  • Deterministically derived from the FPAN
  • Non-reversible — useless if leaked
  • Auto-updates across merchants when the underlying card is rotated
Every MPP credential and CUA autofill token resolves to a DPAN, never the FPAN.

Fill tokens (ftok_*)

Internal-only encrypted wrappers for PAN/CVV/expiry. Used inside the credential flow, never returned to agents. If you see ftok_ in your logs, our sanitizer missed something — file a bug.

Card-controls sync

Spend caps, MCC allow/block, country allow/block on the policy attached to the card’s agent are pushed to the card-issuer-native control surface. Policy is the source of truth; the card mirror is a best-effort projection.

Webhooks

Plan-tier limits

Next

Agents

The owner of every card.

Policies

What governs each card’s spending.

Pay

How a card actually charges.

Transactions

The record every successful charge writes.