cardvera
Get started →
Technology

No single signal is enough. Four layers that compound are.

Cardvera reaches a verdict in milliseconds by combining four detection layers across the browser and the edge — and its velocity layer learns from what actually happened to each transaction.

01 — Request lifecycle

Where each layer fires.

One checkout request, start to finish: signals gathered in the browser, a verdict at the edge in milliseconds, a conditional silent step-up, a server-to-server pull before the card is charged — and the disposition flowing back to sharpen the next decision.

Browser SDK
signals collected
Cardvera edge
verdict · in ms
Step-up
silent proof-of-work
Your backend
Gateway
authorize
blocked 0
⟳ rules learned 0
Inbound Card testing Step-up Gateway decline Approve / decline → edge
02 — Defense in depth

Four layers — and each one's blind spot.

No layer is perfect on its own; we say so. Each one narrows the field and hands the rest to the next — which is exactly why beating one or two gets you nowhere.

L1

Behavioral analytics UBA

Client

Robotic cursor paths and missing micro-corrections, instant paste, uniform inter-key timing, ghost clicks, sub-human form-completion times — and scripted replays whose signals don't hang together across a session.

HowMouse, keystroke, and timing telemetry — how the form is filled, never what is typed — is summarized locally, scored against human-interaction baselines, and cross-checked for consistency across the session.
Blind spotMotion can be replayed from real humans — which is why behavior is corroborated by how the client connects.
L2

Edge integrity JA4

Edge

Automated clients identified by how they connect: headless browsers, Puppeteer / Playwright / Selenium, tampered runtimes, spoofed device fingerprints, datacenter origins, and residential-proxy networks.

HowClient fingerprinting at the TLS and HTTP layer (JA4 and related connection fingerprints) at the edge, alongside runtime probes and IP reputation — before anything else runs.
Blind spotA patched, fully-headed browser on a clean residential proxy can pass — so a clean connection narrows the field, it doesn't decide alone.
L3

Proof-of-work step-up

Step-up

Bot farms operating at scale — a silent background challenge that's free for one real customer but a real CPU cost per attempt for a farm running thousands. No CAPTCHA.

HowAmbiguous sessions get a background proof-of-work with nothing for a human to solve or click; attackers pay it thousands of times over.
Blind spotA patient attacker can pay the compute — at which point the pattern their cards make is what gives them away.
L4

Payment-layer velocity

Adaptive

Decline bursts, low-and-slow enumeration, and coordinated probing across sessions, IPs, and devices.

HowAdaptive velocity scoring driven by a feedback loop on decline bursts — no static ceiling to throttle under, and every transaction's real outcome sharpens the next verdict.
Blind spotThe first attempts of a brand-new pattern happen before there's an outcome to learn from — which is what L1–L3 exist to catch.
03 — Inside L4: the feedback loop

When the perfect bot emerges, the loop closes.

L1–L3 exist to make a bad first attempt rare. L4's feedback loop is built so the second one fails: ground truth — what actually happened to the transaction — becomes the next block rule.

Your backend reports each transaction's real disposition through our Outcome API — no cardholder data required — and we mine it for confirmed-bad patterns. A mimic that slips through once trains the edge to stop the next one — automatically, without a human writing a rule.

Verdict→ Transaction→ Disposition→ New block rule↺

Gateway signals

Auth declines, $0-auth outcomes, and decline-reason codes — the earliest tells that a tested card was never going to settle.

Settlement & refunds

What actually captured and shipped vs. what was immediately refunded — separating real orders from test traffic.

Chargebacks & representments

Confirmed fraud disputes, weeks later, that retroactively label a pattern as bad and feed the rule engine.

Merchant labels

Your own confirmed-fraud and confirmed-good flags, weighted highest — the model adapts to your traffic, not a generic baseline.

04 — The economics

Why beating all four isn't worth it.

Card testing is a volume business with thin margins per card. Our job isn't to be unbeatable — it's to make beating us cost more than it returns.

The layers are independent, so an attacker has to defeat all four simultaneously on every attempt. The moment one succeeds, its transaction resolves — and L4's feedback loop turns that success into a rule that closes the gap. The attacker isn't fighting a fixed target; they're fighting one that rewrites itself from their own failures. Against thin per-card economics, that's a losing trade.

05 — Architecture & privacy

Built at the edge. Blind to the card.

Edge-native

Verdicts in milliseconds, in front of your gateway. Signed server-side, so they can't be spoofed from the browser.

We don't touch cardholder data

Card numbers, CVVs, and expiry dates never pass through Cardvera. The browser library measures how the checkout is used, never what is typed — your PCI scope is unchanged.

Gateway-agnostic

A simple allow / step-up / block verdict. Call Stripe, Adyen, Checkout.com, or anything else after.

Fail-open by design

If Cardvera is ever unreachable, checkout proceeds untouched. Protection should never become the outage.

06 — Integration

One script tag. One verdict call.

Drop the SDK on checkout, pull the verdict server-side before you charge. No rule tuning, no fraud team — built to go live in under an hour.

<!-- 1. On the checkout page -->
<script src="https://edge.cardvera.io/v1/cv.js"></script>

// 2. Server-side, before you authorize the card
const verdict = await cardvera.getVerdict(sessionId);
if (verdict.action === "block") return reject();
if (verdict.action === "step_up") return stepUp();
// otherwise → charge the card

Stop card testing before it's an authorization.