I wish I could pay for things on my mobile bill. Stuff I’m buying from websites, applications from an app store, pizzas from Dominos. This, the concept called “carrier billing” or “operator billing”, would be entirely possible if mobile phone carriers could do one inch of cooperation rather than sitting about wringing their hands about how Apple and Google are getting all the money. Of course they’re getting all the money; you lot would rather they got all the money than any competitor got a cent, and it’s going to kill your businesses and turn you into the dumb pipes that everyone wrongly thinks you should be.
So, this is how it should work. Carriers, pay attention.
Step 0: The Carriers
All the carriers get together and create one service where people can pay for things on their mobile bill by just visiting a web page. This is the bit that has not happened; this stuff is theoretically possible (GSMA were doing tech demos of this sort of thing, conceptually, two years ago when I was at MWC). Imagine they now have all done so, and this service is live at OneTrueMobilePayments.com.
Step 1: The Developer
I, an app developer, make a mobile web app. I go to OneTrueMobilePayments.com and sign up, completely automatedly, fill in my bank details/paypal account/whatever, and get an API key. Note that there was no requirement there to fill in a form and have a human review it, nor to sign a secret NDA, nor to agree to a partnership deal with one specific carrier. Signing up for this should be like signing up for Google Adsense or Stripe or something. No secret deals. No signatures on bits of paper.
Step 2: The User
A user comes to my website. I want to sell them some digital thing; a new avatar, let’s say. I construct the URL
http://onetruemobilepayments.com/buy?item=NewAvatar&price=1GBP&apikey=ABCDEFG and direct the user’s browser to it. The user goes there, and that website recognises which carrier they’re on (because they’re on the carrier’s network and the carrier’s network knows that they’re connected to the onetruemobilepayments server, which is magic1) and gives them a big button which says “buy this thing for 1GBP”. Clicking that button redirects back to the web app with some sort of ?paid=yes thing; my web app then records that the payment was made, just like buying from paypal.
Obviously there would need to be a bunch of cryptography and stuff in here to avoid forged requests, replay attacks, etc, but that’s all known science (paypal does it, oauth does it, etc). There is also the problem of “what if they’re on wifi”, which is indeed a problem for this plan but probably not insurmountable.2 Maybe onetruemobilepayments.com is actually a different server for every carrier and each carrier sets it differently in their DNS. Dunno. There are plenty of smart tech people who can work out the best way to provide the slick user experience I describe.
Importantly, there are two things missing from the above, and it’s really important that they stay missing.
The first is: the developer did not know anything about carriers. They signed up for the one service, and that all works. The developer did not have to sign separate deals with every carrier in every country; they did not have to register their bank account with every carrier in every country; they signed up for one api key from the service and that’s it. Now, sure, there are a whole bunch of financial and tax and whatnot implications here, but developers don’t care. Solve that problem. Don’t outsource it to every developer in the world. Make this be an easier way to get money for developers than the iTunes App Store is, and people will jump on it like wolves. Getting paid for stuff is currently irritating. Make it be not irritating. Make it be as simple as Stripe for your developers, and way simpler than Stripe for the millions and millions of users. And then take 5% off each payment or whatever.
The second is: the user did not have to log in. They did not have to register a username and a password; they did not have to remember that password. My carrier knows which web pages I’m visiting. Use that information. My carrier knows how my phone is connected to the network. A web server operated by the carrier and plumbed into the carrier’s network can know who I am without having to ask. Use that. The user already has a financial relationship with their carrier; you don’t need to ask them for accounts and payment details. Use that. That makes the purchase experience totally slick. No passwords to remember. No initial hurdle of setting up a username. One click. Paid for. Done. That’s how you beat Google Wallet and Paypal, by taking advantage of the fact that you run the network and they don’t. They want carriers to be just dumb pipes — avoid that by being a smart pipe which can deliver things that they cannot.
The frustration, it burns
I am not the first person to say all of this. This is all known concept in the carrier world. The GSMA is a sort of steering-group-cum-industry-organisation who are there to help make this sort of cooperation happen. But their OneAPI project has closed; WAC never really got off the ground and got binned. Operators basically refuse to change any of their systems to do anything interoperable at all. And they don’t think that developer APIs are worth it, because every time an operator creates a set of developer APIs, nobody uses them. Because they insist that a developer sign up and sign an NDA before being able to read the documentation; that that developer then has to register with each carrier individually; that making a developer sign an agreement specifically with you is more important than them actually getting stuff done, and every carrier would rather lose the business than cooperate with their competition. No developers will do all this. You, Mrs Operator, are not an important part of their business, not when they have to sign up with your 99 competitors as well. Nobody is going to set up a system where users get a slick experience but only if they’re on T-Mobile. This is not competitive advantage for you. Stop thinking that it can be. But if you all get together then it is competitive advantage for operators as a whole over non-operators as a whole. It honestly feels like the “priority ordering” for operators is:
- Do something which makes us, our specific operator, win and every other operator lose, so that one day every mobile phone in the world uses us!3
- Lose and have Google and Apple and Stripe and Paypal get all the money
- Do something which makes us and other operators all win big and Paypal lose
…that is, it is more important that your competition loses than that you win. This is stupid on a scale difficult to express in words. It is the Mount Everest of moronic business thoughts. Pack it in.
Please build this. Please stop me having to type my credit card number in, or teach that credit card number to my browser, or sign up for a Paypal account. Carriers, you could do this. All it needs is that you be prepared to cooperate, and that you work in the open and not only in secret back-room handshake partnership deals. Yes, this is a radical change to the way you do business. But in a world in which everyone’s on mobile, it means you get 3% of every transaction anyone makes anywhere, and it is a slick delightful experience to a degree that your non-carrier competition cannot match. Do it. Make everyone love you. It’s much nicer than being hated, I promise.
- this requires carrier cleverness, but it’s already doable; EE, here in the UK, will show me my current data usage just by visiting a URL, and I didn’t have to log in at all ↩
- You say “sorry, disconnect from wifi and then hit refresh”, or you send them an SMS to the number they entered and they reply with “yes, pay it”, or something. There is complexity here, but if we can land a man on the moon, we can sort this out, for god’s sake. ↩
- insert maniacal laughter here ↩