All articles Fraud & ATO

Detecting Card-Testing Attacks on Ecommerce Checkout

A card-testing attack does not look like a purchase; it looks like a machine gun. Bots push thousands of stolen card numbers through your checkout with tiny or zero-value charges, hunting for the ones that authorize, and every attempt costs you a fee whether it succeeds or not.

This article explains how card testing works, why it hurts even when the amounts are trivial, and how device intelligence gates the checkout endpoint before enumeration finds live cards. It connects to the broader payment fraud detection pillar.

How card testing works

The attack is a validation pipeline that feeds bigger fraud downstream.

  • Sourcing. The attacker acquires bulk card numbers from breaches or generation against a known BIN range.
  • Enumeration. Bots submit each card through a low-friction endpoint, often a donation form, small-item checkout, or account card-add flow.
  • Selection. Cards that authorize a micro-charge are flagged as live and sorted for resale or larger fraud.
  • Exploitation. Validated cards fund high-value purchases, gift-card buys, or reshipping schemes elsewhere.

The checkout is not the target; it is the free tool the attacker uses to sort a stolen list.

Why the small charges hurt so much

Merchants underestimate card testing because the individual amounts look harmless. The real cost is structural.

  • Per-attempt fees. Authorization and decline fees accrue on every try, and a burst of tens of thousands adds up fast.
  • Processor risk penalties. A spiking decline and fraud rate can raise your reserve requirements or threaten your account standing.
  • Downstream chargebacks. Cards validated on your site fund fraud that comes back as disputes.
  • Reputation damage. Issuers that see testing traffic from your BIN interactions may decline your legitimate customers more often.

A testing burst can cost more in fees and penalties than the fraud it enables, which is why gating the endpoint is urgent.

Why velocity rules miss it

The obvious defense is rate limiting, and attackers are built to defeat it.

  • IP velocity breaks against residential proxies that give each attempt a distinct address.
  • CAPTCHA slows humans more than the automation frameworks designed to bypass it.
  • BIN blocking is too blunt, catching legitimate cards on the same range.
  • Account throttling is irrelevant because testing often hits guest or donation flows with no account at all.

Every field the rate limiter keys on is something the attacker rotates. The signal that persists is the device driving the requests.

Device identity as the anchor

A stable visitor identifier persists across incognito sessions, cleared cookies, and rotated proxies, so ten thousand attempts that resolve to a handful of devices expose the attack even when every IP differs. Combined with automation detection, this catches enumeration at the first burst rather than after the fees land.

Prynt evaluates the checkout endpoint server-side and returns Smart Signals with the visitorId:

  • Bot and automation flags identify scripted submission before cards are validated.
  • Device linkage ties mass attempts to their true small source.
  • Network origin signals surface the proxy and datacenter traffic no real checkout should carry.
  • Reputation carry-over flags devices tied to testing elsewhere through a cross-site reputation network.

Building the control

The goal is to shut down enumeration without adding friction for a real buyer entering one card. A layered flow works:

  • Score the payment endpoint for automation on every submission, not just at login.
  • Rate-limit by device, so one machine cannot spread attempts across a proxy pool.
  • Challenge or block high-velocity device clusters while letting single, human-paced attempts through.
  • Keep decisions explainable with reason codes so support can defend a block.

Measuring success

The trap is a decline-rate drop that also blocks real buyers on a slow connection. Track both:

  • Authorization attempts per device, which should collapse toward human levels once gated.
  • Decline rate and per-attempt fee spend, the direct cost the control targets.
  • Blocked-attempt rate versus legitimate checkout completion.
  • Downstream chargebacks from cards that would have been validated.

Card testing is bot traffic wearing a checkout costume. Anchoring the payment endpoint to a device identity the attacker cannot cheaply reset stops the enumeration before it inflates your fees and your fraud rate.

Frequently asked questions

What is a card-testing attack?

Card testing is running large lists of stolen or guessed card numbers through a payment endpoint with small or zero-value transactions to discover which cards are live before using them for larger fraud.

Why is card testing so damaging even when charges are tiny?

Each attempt incurs authorization and decline fees, harms your processor risk profile, and can trigger fraud-rate penalties, so a burst of micro-charges can cost far more than the fraud itself.

How does device intelligence stop card testing?

It flags the automated, high-velocity traffic behind enumeration and links thousands of attempts to a small set of devices, letting you gate the checkout endpoint before cards are validated.

Card testing is cheap for attackers and expensive for you. Gate the payment endpoint by device, catch automation early, and measure fee spend alongside declines. Try the playground to see bot and device signals live, or plan a deployment on the pricing page.

Try it free

Prynt is device intelligence with a free tier — visitor IDs, bot & fraud Smart Signals, and behavioral biometrics, powered by a cross-site network. Start free.

Keep reading