Check whether a card number is structurally valid (Luhn checksum) and which network it matches — not whether it’s a real, active card.
Every major card network's numbers end in a check digit computed by the Luhn algorithm (also called mod-10), a simple checksum published since the 1950s specifically to catch typos and transposed digits before a number ever reaches a payment processor — it's the same instant check a checkout form runs the moment you finish typing, before any server round-trip happens.
The algorithm works right to left: starting from the second-to-last digit and moving left, double every other digit; if doubling pushes a digit above 9, subtract 9 from it (equivalent to summing its two digits); add up every digit, doubled and untouched alike; the number is valid if that total is a multiple of 10.
This tool also identifies which network a number belongs to from its leading digits (the IIN, or Issuer Identification Number) and checks whether the digit count matches what that network actually issues: Visa starts with 4 (13, 16, or 19 digits), Mastercard starts with 51–55 or 2221–2720 (16 digits), American Express starts with 34 or 37 (15 digits, grouped 4-6-5 rather than the usual 4-4-4-4), and Discover starts with 6011, 65, or 644–649 (16 digits). The 2221–2720 Mastercard range is worth knowing about specifically — Mastercard added it in 2016 once the original 51–55 block started running out of room, so any validator written before that update (including plenty of regexes still copied into forms today) silently rejects a fully legitimate, newer Mastercard number.
What this can't tell you, and this matters more than what it can: passing this check only means the number is mathematically well-formed — the digits are internally consistent, the way a correctly-formatted VIN or ISBN is. It says nothing about whether the card was ever actually issued, is currently active, has any funds, or belongs to a real account — confirming any of that requires an actual authorization request to the card network, which no browser-based tool can or should perform. Roughly one in ten random digit strings of the right length will pass the Luhn check purely by chance, which is exactly why this is a formatting sanity check, not a fraud or ownership check.
Worked example: Visa's well-known public test number, 4111 1111 1111 1111, traces as: starting from the right, double every second digit — 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2 — giving a doubled sequence of 8,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1. Summing all sixteen values gives exactly 30, and 30 is divisible by 10, so the number passes. Change the very last digit to a 2 instead of a 1, and the sum becomes 31 — not divisible by 10, so it correctly fails, exactly as intended for a single mistyped digit.
No — it only confirms the number is mathematically well-formed (passes the Luhn checksum and matches a known network’s format). Whether a card is actually issued, active, or has funds can only be confirmed by an authorization request to the card network itself, which requires direct integration with a payment processor.
The check runs entirely in your browser and nothing is sent to a server, logged, or stored — but as a general practice, avoid typing real financial details into any tool you don’t need to, including this one. Use the provided test numbers if you just want to see how it works.
Mastercard expanded its prefix range in 2016 to include 2221–2720 alongside the original 51–55 block. This tool covers both ranges, but many older or simpler validators only check 51–55 and incorrectly reject newer Mastercard numbers — if you’re seeing this elsewhere, that’s likely the cause.
Payment processors publish dedicated test numbers for exactly this purpose — 4242 4242 4242 4242 (Visa) and 5555 5555 5555 4444 (Mastercard) are widely used, well-known examples that are Luhn-valid but carry no real funds or account.