Choosing/Reserving partial card numbers (last 4 digits)


(Edward) #1

When you have multiple cards registered to a service (e.g. Paypal, Amazon, etc) you will generally have only the last 4 digits available to choose between cards (and occasionally the card type e.g. Mastercard or Visa).
The last 4 digits of my Mondo card happen to have a nicely memorable mnemonic that lets me immediately pick it out of a list without getting out kmy wallet (or phone) to check, which prompted me to think:
Could the last 4 digits of our ‘release’ Monzo cards be reserved or otherwise user-selectable in some way?

Now on a technical level a card nubmer is governed by a few rules. For Visa and Mastercard, there are 16 digits of which up to the first 6 are determined outside of Monzo’s control. That leaves 10 digits (10 billion numbers) for Monzo to use as a pool of potential card numbers. Lop the last 4 off, and there are 6 digits, or 1 million card numbers per chosed 4-digit ending
Except there aren’t, because that last digit is a checksum, calculated by the Luhn algorithm. While the 6 digits in Mondo’s control can be ‘fudged’ to ensure the last digit is the one desired, that cuts down on the potential number of unique numbers available.
Due to the checksumming there is probably not a useful way to calculate how many unique card numbers are available for a given 4-digit ending (and not without knowing how many of the preceding 6 digits are fixed and what those digits are), so a “choose your last 4 digits” policy almost certainly could not be a blanket policy and still deliver a persons first choice of number. Solutions to this could include a combination of:

  • A ‘first come first serve’ reservation system. Monzo already has a sequential queue set up for providing card already, so this option would be relatively easy to implement for now.
  • A fee to choose your desired 4-digit ending, and no fee for a randomised (or ‘unpopular’) number. This serves to dramatically slow the pool of numbers being ‘used up’, but mainly pushes the problem further into the future rather than solving it. It also differentiates some users from others, which may be unpopular
  • Only ever allowing people to present a selection of choices (e.g. 4 choices), rather than picking a ‘first choice’, and dramatically reducing the chance of a user encountering a situation where none of their chosen numbers are available.
    Finally, the back-end issuing of card numbers would need to be modified to handle this. Whether issuing is sequential or randomised, either way it would not be semi-deterministic, and this may have security/privacy implications.

(Daniel Chatfield) #2

It’s an interesting suggestion. I think the biggest hurdle would be that this would make the card manufacture process much slower and difficult.

For any given 4 digit ending you can expect there to be approximately 100,000 valid PANs.


(Edward) #3

An excellent point, though a delay in receiving a card would also act as an effective demand brake.

100,000 valid PANs per ending isn’t as low as I was expecting, though at least some percentage of those would need to be reserved for inevitable card cancellations and replacements.