And there’s nothing preventing PoS from supporting individual wallet apps – see e.g. WeChat Pay / Alipay in China. (Alipay+ is also a “protocol”, i.e. other banks and wallets support it.)
> Zelle® is available in over 2,400 banking and credit union apps.
so I’m pretty sure there is a spec because there is no way in hell this many banks are using ad-hoc protocols to talk to each other and/or a centralized system. But yeah, I don’t see anything published.
Chances are it’s something ISO 20022-ish. (Either that or an Excel spreadsheet.) Speaking of which...
> and has a bank account can then talk to their bank using the standardized protocol
...if you’re a big enough business, you probably can also speak ISO 20022 to your bank. If you want it on your personal account however, well, that makes two of us, but from practical standpoint what I care more about is that I can punch in an account number and send money near instantly, which Zelle seems to provide in the US (but I have to make do with whatever Wise provides, probably regular ACH judging by speeds).
Having the merchant manually process every payment using the bank-specific app on their personal phone isn't it.
We don’t have a single protocol for acquiring (online) card payments either, and this hasn’t been an issue. Everything just uses plugins or custom integrations.
Not sure about in-person payments. From my experience, banks program their own firmware into the terminal, but it may support some standardized API over USB / Serial. Even then, any given bank can implement some subset of features, and supports only a bunch of models (so if you decide to switch banks and your terminal isn’t “blessed”, you’ll have to buy a new one; thankfully, they’re fairly cheap used).
It’d be nice to have a unified protocol for all payment types IMO, but I’m not sure that’s realistic. Some Chinese payment processors have something like that, with a couple Alipay gateways emulating one protocol established by another gateway, so you can just swap out the API endpoint in case you want to switch. But even that’s just for the simplest case (you have to redirect the user to the processor’s page).