Hacker News new | ask | show | jobs
by bogantech 378 days ago
> But to validate those transactions, you must send them to the bank over the internet

Not how it works at all, banks don't have some open API on the internet for processing card transactions

3 comments

I agree that this isn't how it works.

The first thing to understand at an even higher level about payment cards is that they have always had two separate and barely related components, Authorisation and Settlement.

Authorisation is concerned with whether this specific transaction has been approved in some sense by a card issuer. Authorization today is relatively high tech, there's somewhat decent cryptography, tamper resistance, uniqueness = they really care - and that's because when Authorization problems occur the banks might lose money, which they hate.

Settlement is "just" moving the money from one customer to another. $123.45 from Jim Smith to Terrible Goose Inc, done. This is very mid-late-20th century technology, we're not talking pieces of paper and scribbly hand writing, but fixed width ASCII fields on magnetic tape is fine - it's the customer's money so the banks don't care more than legally required.

Settlement replays are how you get "accidents" where a big store's customers all get charged twice for a whole day - the associated Authorizations can't be replayed, that's the banks money at risk - but the settlements aren't protected.

Merchants can, and some do, choose not to care about Authorization. In a huge business it could make sense to eat say 2% of sales as undetected fraud (ie you never receive payment) rather than have any transactions fail. If you operate a food truck using a terminal to take $1000 per day on your iPhone the people who supply your terminal may not let you opt out because that's risk they don't want. But if Jeff Bezos or Doug McMillon makes more without Auth he's turning it off.

This terminology is not quite right for the US. I'm assuming you're from elsewhere due to the "s" in authorization. :)

In the US, the two steps for the merchant are Authorize (optional) and Capture. If both steps are performed, it's a dual-message transaction. If you skip Auth, it's a single-message transaction.

Settlement of funds is a multiparty bank-bank-bank operation, in which merchants are not directly involved.

It's over the Internet, because you're not going to run a dedicated fiber to every card reader. But it's not over the unprotected internet; your card reader will establish a VPN connection of sorts, or at least talk via an encrypted channel (think TLS) is you use e.g. a Square terminal.

Not that a random person can hit these endpoints, unauthenticated, and try to run a transaction.

Correct. In point of fact, payment cards/merchant networks are quite literally just that. You get a credential, and that credential can be revoked if you get up to something sufficiently heinous to warrant the ostracizing.

People would be surprised if they really took the time to learn how much of life is just operating on good graces.

I mean, maybe they don't have an open API, but they sure do have an API on the internet. Surely the payment terminals are communicating with the issuing bank in someway, perhaps over an interface of some kind.

I believe what this comment is getting at is that making fake transactions is useless without a connection to a bank that will execute them.