HomeValidatorsSecurityAmex & Discover Card Validator

Amex & Discover Card Validator

Security

Validate American Express and Discover credit card numbers using Luhn checksum and BIN prefix detection instantly — client-side only, no card data stored.

What is a Amex/Discover?

The Amex & Discover Card Validator checks whether a payment card number is a structurally valid American Express or Discover card — using the Luhn checksum algorithm and BIN (Bank Identification Number) prefix detection. It is a focused companion to the more general Credit Card Validator, specifically for workflows where you need to confirm a card is one of these two specific networks.

American Express: 15-digit numbers starting with 34 or 37. Display format XXXX XXXXXX XXXXX (4-6-5).

Discover: 16-digit numbers starting with 6011, 65, 644–649, or 622126–622925. Display format XXXX XXXX XXXX XXXX (4-4-4-4). The 622126–622925 range reflects Discover's co-badging arrangement with China UnionPay.

The validator performs three checks in sequence:

  1. Digit count — 15 for Amex, 16 for Discover
  2. Prefix match — confirms the number starts with a valid Amex or Discover BIN range
  3. Luhn checksum — the weighted digit sum must be divisible by 10

A "Valid" result means the card number could have been issued by Amex or Discover. It does not mean the card is active or has an available balance — that requires a live authorisation call to the card network. Use the Credit Card Formatter to format card numbers for display purposes.

All validation is client-side. Card numbers are never transmitted or stored.

How to use this Amex/Discover calculator

  1. Enter the card number in the input field — raw digits or with spaces/hyphens (stripped automatically).
  2. Check the Valid/Invalid badge — updates instantly.
  3. Read the details — network detected, digit count, and Luhn result.
  4. Use test card numbers (not real cards) — Amex: 378282246310005; Discover: 6011111111111117.
  5. Format the number for display using the Credit Card Formatter.

Formula & Methodology

Luhn algorithm:
Starting from the rightmost digit, moving left: - Leave odd-position digits (1st, 3rd, ...) unchanged - Double even-position digits (2nd, 4th, ...); if result > 9, subtract 9 - Sum all digits - Valid if: sum % 10 === 0

BIN detection:

| Network | Prefixes | Digit count |
|---|---|---|
| American Express | 34, 37 | 15 |
| Discover | 6011, 65, 644–649 | 16 |
| Discover (UnionPay) | 622126–622925 | 16 |

Valid and invalid examples:

| Card Number | Valid? | Note |
|---|---|---|
| 378282246310005 | ✓ | Amex test card — Luhn passes, 15 digits, prefix 37 |
| 371449635398431 | ✓ | Amex test card |
| 6011111111111117 | ✓ | Discover test card — Luhn passes, 16 digits, prefix 6011 |
| 378282246310006 | ✗ | Amex prefix, 15 digits, but Luhn fails (last digit changed) |
| 4111111111111111 | ✗ | Visa — passes Luhn but prefix 4 is not Amex or Discover |
| 37828224631000 | ✗ | Amex prefix but only 14 digits |

Frequently Asked Questions

American Express card numbers are 15 digits long and always begin with 34 or 37. The standard display format groups them as XXXX XXXXXX XXXXX (4-6-5), unlike Visa and Mastercard which use XXXX XXXX XXXX XXXX (4-4-4-4). Amex numbers pass the Luhn checksum algorithm and are issued exclusively by American Express — no other network uses the 34/37 prefix.
Discover card numbers are 16 digits and start with one of four prefix ranges: 6011 (the original Discover prefix), 65 (US Discover and Diners Club International), 644–649, or 622126–622925 (the China UnionPay-routed range used since 2012 for US Discover cards). All valid Discover card numbers pass the Luhn algorithm. Discover cards display in the standard XXXX XXXX XXXX XXXX (4-4-4-4) format.
The Luhn algorithm is a simple checksum formula used to validate credit card numbers. Starting from the rightmost digit, double every second digit; if doubling produces a number greater than 9, subtract 9. Sum all digits (doubled and undoubled). A valid card number produces a sum divisible by 10. The algorithm was designed by IBM scientist Hans Peter Luhn in 1954 — it detects single-digit errors and most transpositions.
No — the validator checks format only: the correct prefix for Amex (34/37) or Discover (6011/65/644–649/622126–622925), the correct digit count (15 for Amex, 16 for Discover), and the Luhn checksum. It cannot access card networks, so it cannot confirm the card is issued, active, not expired, or has a credit limit. Real-time card verification requires a payment gateway authorisation with the card networks.
A real issued card number always passes the Luhn check by design — the last digit of every legitimate card number is calculated to make the Luhn sum divisible by 10. If a card number fails the Luhn check, it means a digit was mistyped (transposition, extra digit, missing digit). No legitimately issued Amex or Discover card has a number that fails the Luhn algorithm.
A BIN (Bank Identification Number), also called an IIN (Issuer Identification Number), is the first 6 to 8 digits of a card number. It identifies the card network and the issuing bank. Discover's BIN ranges include 6011, 65, 644–649, and the China UnionPay interoperability range 622126–622925. The UnionPay range allows Discover cards to be accepted at UnionPay terminals in China and vice versa — a co-badging arrangement between the two networks.
No — all validation runs entirely in your browser. The card number is never sent to any server, stored, or logged. This tool is designed for developer testing with test card numbers, format checking in UI mockups, and payment integration development. Best practice: use published test card numbers (not real card numbers) with any web-based tool.
The [Credit Card Validator](/credit-card-validator/) validates any payment card number across all major networks (Visa, Mastercard, Amex, Discover, Diners Club, RuPay). This Amex & Discover Card Validator is specifically for validating and identifying Amex and Discover cards only — it returns an error for Visa or Mastercard numbers, even if they pass Luhn. Use this tool when you need to confirm a card is specifically Amex or Discover, not just any network.
Enter the card number in the input field — digits only, or with spaces/hyphens (both are stripped automatically). The validator detects the network (Amex or Discover) from the prefix, runs the Luhn checksum, and shows the Valid/Invalid badge instantly. For Amex, valid numbers are 15 digits starting with 34 or 37. For Discover, valid numbers are 16 digits starting with 6011, 65, 644–649, or 622126–622925.
Publicly published test numbers (safe to use in development — no real card): Amex test: 378282246310005 (15 digits, starts with 37) and 371449635398431. Discover test: 6011111111111117 (16 digits, starts with 6011) and 6011000990139424. These numbers pass the Luhn algorithm and are accepted by payment sandbox environments. Never use real card numbers in web-based testing tools.
No — Diners Club International cards use the 36 prefix and are 14 digits. Diners Club US cards (prefix 300–305) are 14 digits. This validator accepts only Amex (15 digits, 34/37 prefix) and Discover (16 digits, 6011/65/644–649/622126–622925 prefix). For Diners Club validation and for general multi-network validation, use the [Credit Card Validator](/credit-card-validator/).
Also known as
American Express card validatorDiscover card checkerAmex card number checkLuhn check AmexDiscover BIN validator