Skip to main content
Blog
Blog Attacks

What is a BIN Attack? How to Detect and Stop Automated Card Testing

A BIN attack tests thousands of stolen or generated card numbers against your checkout. Detect the browser-layer signature and stop it before it costs you.

Aug 14, 2026 5 min read
What is a BIN Attack? How to Detect and Stop Automated Card Testing
Table of Contents

TL;DR: BIN attack detection at the browser layer

  • Why controls fail: Rotating IPs and cheap CAPTCHA challenges are treated as the answer to BIN enumeration, but Visa attributes roughly $1.1 billion in ecosystem losses to this attack in a single year, so the standard controls are clearly not doing the job.
  • What cside does: cside captures the device fingerprint, behavioral score, and script activity of every checkout session and flags flat scoring, missing cursor motion, and superhuman form-submit timing before the transaction leaves the browser for the gateway.
  • Check your logs: If your last 30 days include sessions with more than five distinct card numbers and a decline ratio above 90%, your gateway is billing you for authorization attempts on an attack it is only detecting after your money is spent.

Short on time? See cside's chargeback-evidence tooling. It covers everything below in one deployment.

Attackers do not test stolen cards by hand. They run an automated script that hammers a merchant's checkout with thousands of low-value transactions in a few minutes. Each successful approval hands the criminal a validated card number worth reselling or reusing. If your acquirer sees a spike of low-value declines from a narrow set of sessions, you are the target of a BIN attack.

What a BIN attack actually is

A Bank Identification Number is the first six to eight digits of a credit or debit card, and it identifies the issuing bank and card scheme. Attackers who obtain or algorithmically generate card numbers within a valid BIN range use automation to figure out which numbers are live.

The mechanics are consistent across every attack we have seen at the browser layer:

  1. A script iterates through candidate card numbers within a valid BIN range.
  2. Each candidate is submitted as a small transaction, often $0.01 to $1.00, against a merchant's checkout.
  3. Any card that returns approved is flagged for reuse in a higher-value fraud attempt downstream.

Visa tracks the same attack under the name enumeration attack and has attributed roughly $1.1 billion in ecosystem losses to it in a single year. Mastercard flags it inside its Fraud and Chargeback Reduction reporting and has been rolling out Fraud Protection Technologies specifically to counter enumeration.

Why merchants get chosen

BIN attackers pick checkouts that let automation run cheaply. Three properties usually put a merchant in the top of that pile:

  • Guest checkout with no login gate
  • Little or no bot friction beyond a basic CAPTCHA
  • Minimum transaction amount set very low, so the attempts fly under fraud rules

Small merchants absorb most of the volume because their controls are lighter. Large merchants still pay a real price: gateway fees on every attempt, chargebacks on the successful attempts, and network-level fines if the ratio of enumeration traffic gets high enough.

The browser-layer signature

A BIN attack looks unmistakable if you can see the session, not just the transaction. Six patterns show up together:

  • Dozens or hundreds of submit attempts from one session, device, or IP in a short window
  • Sequential card numbers inside a single BIN range
  • Decline-to-approve ratios above 90%
  • The same device fingerprint attempting many different cards
  • No cursor movement, no scrolling, no cart edits, just pure form submission
  • Timing that is more regular than any human could produce

Server-side fraud tools that only see the transaction stream catch this attack after the fact. The browser layer sees the automation signature before the transaction hits the gateway. This is the same signal that catches AI-driven card testing agents. See our guide on how to block AI credit card testing agents for the case where the automation is an LLM-driven agent rather than a scripted bot.

Controls that actually work

ControlWhat it stopsRealistic impact
Device fingerprintingRepeated attempts from the same device, even across IP rotationHigh
Behavioral scoringScripted versus human interaction on the checkoutHigh
Velocity limits at the browser layerRapid submits from a single device or sessionMedium
Gateway rate limits per IPStraight-line IP floodingLow; attackers rotate IPs
CAPTCHABasic automationLow; modern bots bypass reCAPTCHA cheaply
BIN blocklistKnown abused BIN rangesMedium and reactive

Device fingerprinting sits at the top because BIN attacks depend on stable device identity to run at scale. Rotating IPs is trivial for an attacker. Rotating device fingerprints in a way that also fools behavioral models is not.

Where cside fits

cside captures device fingerprint, behavioral signals, and script activity from the browser on every checkout session. When a session shows automation patterns (flat behavioral scoring, no natural pointer motion, form submissions faster than a human could type), cside can flag it before the transaction leaves the browser.

The same device fingerprint also becomes usable evidence on the small percentage of BIN-attack transactions that succeed and get disputed. See how device fingerprinting for card testing works when disputes arrive.

What to do this week

If you are not sure whether a BIN attack has already landed on your checkout, three checks tell you fast:

  1. Pull the last 30 days of authorization data from your gateway and count the sessions with more than five distinct card numbers attempted. That is your enumeration attempt volume.
  2. Compare the decline ratio on those sessions to the site average. Anything above 90% is enumeration.
  3. Check whether any of those sessions successfully processed a transaction. If yes, expect a chargeback in the next 30 to 60 days.

If the first two numbers are high and you cannot see the browser-layer signal, you are relying entirely on your gateway's fraud rules, and your gateway sees the attack only after it has spent your money.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks, web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

A BIN attack is automated card testing that iterates through candidate card numbers within a valid Bank Identification Number range and submits each one to a merchant's checkout to see which numbers return an approval. The approved numbers get flagged for reuse in higher-value fraud downstream. Visa calls the same attack an enumeration attack and has attributed roughly $1.1 billion in ecosystem losses to it in a single year.

The attack has a consistent browser-layer signature: dozens or hundreds of transaction attempts from a single session, sequential card numbers within one BIN range, decline-to-approve ratios above 90%, the same device fingerprint attempting many different cards, and behavioral flatness with no scrolling or cursor movement. Server-side fraud tools see the attack in the transaction stream but only after the fees have already been charged. Browser-layer detection sees the automation signature before submission.

Device fingerprinting is the highest-leverage control because BIN attacks depend on stable device identity to run at scale. Rotating IPs is trivial for attackers, but rotating device fingerprints in a way that also fools behavioral models is not. Combine device fingerprinting with behavioral scoring on the checkout page, browser-layer velocity limits, and gateway-level rate limits per IP as a backstop. CAPTCHA slows basic automation but modern bots bypass most challenges.

They overlap heavily. A BIN attack is a specific form of card testing that iterates through numbers within a known BIN range. Card testing more broadly covers any automated attempt to validate whether a card number is live. Both use the same defenses at the browser layer. See our guide on how to block AI-driven card testing agents for the specific case where the automation is an AI agent rather than a scripted bot.

Monitor and Secure Your Third-Party Scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start free, or try Business with a 14-day trial.

cside dashboard interface showing script monitoring and security analytics
Related Articles
Book a demo

Want to walk through this with an engineer?

Thirty minutes, on your own site. Not a slide deck.

We'll show you:

Which third-party scripts are running on your site right now
Where you stand on PCI DSS 6.4.3 and 11.6.1
How much of your traffic is bots and AI agents

Rather just send a question?

Finding open slots…

Real humans only. We'd know.

Having trouble booking? Open scheduler in a new tab

What are you trying to solve?

Tell us in a line and we'll come back with something useful, not a generic pitch.

We usually help with:

Seeing which third-party scripts run on your site
PCI DSS 6.4.3 and 11.6.1 evidence
Bots, AI agents and account takeover

Prefer to just book a time? Pick a slot instead