Hacker News new | ask | show | jobs
by eduardordm 4467 days ago
Hi, my credit card company is not listed there, yet it exists: my IIN is 6371.

I'm afraid this is not completely accurate at all. There are many credit card IINs and those are just a very few and will not work with some international cards (including international visa cards). Those numbers are issued by the American Bankers Association - in accordance to ISO 7812. They are not attached to a credit card flag, but to a company and a single company can have only one IIN. What happens is that Visa is composed of many companies in many countries, that's why they have many IINs which may or may not start with the same numbers, there are no strict rules about that.

The number this website calls 'prefix' is actually named IIN and it's composed of 6 characters, not 4 (nor 2 or 3). They are disposed in groups of 4 for a variety of reasons and no issuer owns whole lots of IINs.

The only completely correct way to detect a credit card is to just contact ABA to obtain a list of issued IINs.

This is what an issued IIN looks like, we also have many:

https://drive.google.com/file/d/0B-Sa2A0cesh4eDVMY3NwQ3ZEVlZ...

I also built a thing to help me parse those numbers (ruby):

https://github.com/eduardordm/iso7812

5 comments

I can confirm this is the case, which is why services like http://www.binlist.net/ exist.
I suppose the idea is to determine the so called "card scheme" (Visa, Master, etc), not necessarily the IIN. E.g. for some payment processors, the merchant service charges are different according to the card scheme (it does't depend on the issuer). I undertand this is a simplification and it might not work for cards that don't belong to major networks, but it's good enough for a lot of businesses.

For example, if I have a business here in Japan, I doubt I could easily charge a card issued by your company (I'll be happy to be proven wrong).

Ps: brasileiro aqui.

Oi!!

The general idea is this: IIN is issued to visa branches around the world each branch can only have one IIN. Problem is, visa is not the only issuer of visa cards. Many banks and financial institutions can also issue in lieu of visa and have their own IINs as they please. My visa credit card starts with 2 because it was issued by an airline under a mileage program. I never had problem using it online but most websites won't show the correct card type.

Merchants are not charged according to a card type, the charges applied to merchants have nothing to do with visa. Visa is only doing processing service for a bank. Banks are the ones who charges merchants and pay visa a percentage of the fee the bank charges you. Because banks can't handle the volume of merchants, they usually have gateways or other companies to do that for them.

My company also issue visa cards and we use the same IIN: 6371.

Thank you for the clarification. However, my point is that some gateways do charge according to the card type.
Are you the guy with the Rails app that has something like 5000 models (one for each ATM)?
Yes, we do have around that number of tables which reflected into those thousands of models. Many of them are related to storing 'frozen' regulation data. One example: every X time we need to create something very similar to a IRS forms (electronic) and send it to a bunch of government agencies because the data sent must be available for reports we can't just store a text file. One of those regulations requires hundreds of tables:

https://www.fazenda.sp.gov.br/sped/downloads/GUIA_PRATICO_DA...

Some systems are very sensitive to transient data and pretty much needs to store all of it, depending on how you plan to use that data later it can add a good number of tables to your software.

I think you're missing the point which is just to loosely suss out the 4 or so major card brands.
Wouldn't that be an article called "How to loosely suss out the 4 or so major card brands" rather than "How to correctly detect credit card type"? [Their emphasis]
Is that someone's real data or just some example data? You don't want it to be misused / abused.