Wednesday, September 3, 2014

How Credit Card Algorithms Work: The Anatomy of Credit Card



Numbers have always fascinated me. For some reason, it's easy for me to remember a string of numbers and figure out patterns. Alex Long helped me do just that with this article on credit card numbers. He helps answer the questions: Have you ever wondered how credit card numbers work? I mean, how they really work? How do they come up with the numbers? Credit cards actually follow a very specific pattern. Let's take a look at how they're set up.

Example of a Credit Card Number


4485 3151 5882 2849

These numbers are split up into various parts that identifiy different things about the credit card (who issued it, etc). These things are: major industry identifier, bank issuer ID, user ID and check number. They correspond to these parts of the number:

Number 1 is the MII.
Numbers 2-6 are the issuer ID, telling which bank the card is from.
Numbers 7 to n-1 are the user ID.
The last number is a check number to make the number valid against the checking algorithm.




MMI


The major industry identifier tells you what the card is for. Here are the numbers and corresponding meanings.

MMI / Digit Value Category


0 = ISO/TC 68 and other industry assignments
1 = Airlines
2 = Airlines and other industry assignments
3 = Travel and entertainment
4 = Banking and financial
5 = Banking and financial
6 = Merchandising and Banking
7 = Petroleum
8 = Telecommunications and other industry assignments
9 = National assignment

Issuer ID


The issuer ID is for identifying which bank owns the card. Here are the bigger companies numbers.

Issuer Identifier Card Number Length

Diner's Club/Carte Blanche 300xxx-305xxx, 36xxxx, 38xxxx 14
American Express 34xxxx, 37xxxx 15
VISA 4xxxxx 13, 16
Mastercard 51xxxx-55xxxx 16
Discover 6011xx 16

As you can tell from this chart, my example number is a VISA card.

User ID



This number is pretty self-explanatory. The user ID is the identification for who owns the card. With VISA, each bank has 999,999,999 possible card holders. These are given based on availability.

Check Number


To ensure that credit card numbers are valid, a final checking number is appended to each number to ensure that it passes a checking algorithm, otherwise known as the Luhn check. Let's check to see if my fake number above is a valid credit card number.

Checking Number Validity

Let's split up the number I made so that we have an easier time managing the number check.

4 4 8 5 3 1 5 1 5 8 8 2 2 8 4 9

From the back, double every other number.

8 4 (16) 5 6 1 (10) 1 (10) 8 (16) 2 4 8 8 9

After, we have to de-concatenate the double-digit numbers and then add them to make one single digit.

8 4 7 5 6 1 1 1 1 8 7 2 4 8 8 9

If you add all of the numbers together and they add up to a multiple of 10, you have a valid credit card number! If you have any questions, be sure to leave them in the comments below.