My company, MoneyBadger, enabled Lightning payments acceptance for Pick n Pay in South Africa last year. PnP is the 2nd largest retailer in South Africa with over 1500 stores nation wide. (which is why SA's btcmap is looking so healthy).
The main problem we had is that PnP uses their own QR format, so we developed a "companion app" that is a QR scanner capable of reading the retailer's QR codes and translating it into a bolt11 invoice. Our app, CryptoQR, lets you pick your preferred Lightning wallet (since iOS's default app selection is useless), and auto-launches your wallet with payment info pre-filled.
So the way to pay with Lightning at the till is:
- Ask the teller for "QR checkout"
- Launch "CryptoQR" and scan the payment QR code
- "CryptoQR" launches your wallet of choice with bolt11 invoice loaded (URI scheme lightning:)
- Complete payment in your preferred wallet.
It's clunky, but it works. For a long time we tried to think of a better solution to remove the dependency on our scanner app. Maybe we could publish an API? But open-source lightning wallet developers seemed reluctant to add a South Africa specific proprietary API to their codebases (rightfully so!).
That's when we spoke to one of the Blink Wallet (blink.sv) devs who suggested "Hey, why don't you just create a lightning address for each transaction, in the form: <qr_data>@our.domain.
Brilliantly elegant! Can't believe I didn't think of that!
No need for adding 3rd party APIs, just map a specific QR format to a specific lightning address provider.
The trivial code change was created and merged about a week ago: https://github.com/GaloyMoney/galoy-client/pull/331/files
This is permissionless innovation in action.
Ironically, somebody posted a video of Blink scanning and paying directly at PnP to reddit and the mods removed it, thinking it was spam?. Meanwhile it is something fairly unique and special. Reddit used to be cool, what happened?
Here is a link to the video: https://x.com/BitcoinEkasi/status/1851625973382279475
(And here is the shamefully removed Reddit post: https://www.reddit.com/r/Bitcoin/comments/1gg9k2x/paying_instore_with_bitcoin_at_south_africas/)