A year ago, I thought about developing a payment system that would allow people pay for services with recharge cards (well, everyone has thought about that at some point). So I started to think about how I could achieve this.
The obvious problem was how to convert the airtime value into cash. I thought about having a distribution network of recharge card sellers who would be ready to resell any recharge card we send to them in reasonable time. They would buy from us (with attractive discount) and then sell as usual and we would send the money to the merchant/person who wanted cash. But I encounted 3 problems:
1. Validation
This was one of the most disturbing problem of my entire idea. I wondered how I would validate a recharge card, how I would detect if a card wasn’t already used or is lower than the specified value?
It would be disastrous if people started sending in used cards or those with airtime amounts lower than the specified or claimed amount. For example, A dubious user could attempt to order for an item worth N1500 and then send in a N1000 recharge card. This user might even send a used card.
Without a way of validating this recharge cards, we would blindly send them to our recharge card sellers and they too would sell blindly to every day people (if well packaged). Obviously, these cards would be returned or someone might be beaten up.
I knew that this would require some kind of partnership with the network operators. I would need a RESTful API to perform this check. But I also knew that, getting to even sit and talk to them about it would be a challenge, not to talk about them understanding what the heck I’m trying to do. Also, I wasn’t sure they would want to be associated with a project that has similarities with some mobile money platforms, due to CBN’s mobile money regulation that kind of says mobile money products should not accept/convert airtime as/to monetary value.
But I wasn’t deterred. I wrote a 10 page proposal and walked the streets of Ikoyi/VI searching for their offices. 3 months later, still got no reply or acknowledgement. I am still trying to figure out why I got no reply; I think my proposal sucked.
So, my next action was to require anyone who wishes to fund their virtual wallet with airtime to first of all load the airtime. That would solve the problem of pin validation. Then, the user would be required to send the airtime to us using “Share n Sell”, “Me2U” etc. The plan was to have a bunch Android devices automate this process by receiving and detecting these transfers, log them, and put the user in a queue. Recharge card sellers can then request (with discount) for any amount of airtime and we would debit their already funded vendor account.
Things were looking up. I had finally found a (sweet and techy) way around the network operators — “screw y’all, I am programmer”. But one problem still stayed unsolved; How would my vendors/recharge card sellers distribute airtime that was no longer pin based?
2. Packaging And Distribution
The next problem was finding a way to package the loaded airtime so that it would be easy for the vendors to sell.
First thing I thought of was to allow vendors send a message or flash/beep our Android workers to signal an airtime recharge request. The receiving Android device would transfer airtime to the number(s) specified in the SMS sent by the vendor.
Another way was to initiate an IVR call to the vendor and ask the vendor to enter the number of the recipient and the amount to send. Sounds good, but I know I as customer would not wait for such a slow transaction (especially if I were in a rush).
The next solution was to allow vendors download a bunch of generated pins and then sell to their customers. This way, they (customers) would recharge their phones via USSD (not the usual *555*pin# but through a USSD flow like *123# on MTN). Again, another nice solution but still suffers from the same problem as the IVR solution. It’s not seamless and requires a tutorial.
I thought about giving discounts to the customers. Maybe if the recharge cards were cheaper (N100 selling for N90-95 or even much lower), the average Nigerian would not mind. That would mean the initial airtime value would be greatly reduced after deducting commissions.
Anyways, I decided to go with pin generation and USSD strategy. Airtime vendors print out new pins and customers who are buying this cheap airtime are forced to use a not so straight forward USSD process to load the airtime. Well, they don’t actually load the airtime, they instead request for airtime to be transferred to them.
3. Time Between Exchange
So the next problem to tackle was how to decrease the time between recharge card to cash conversion. What would happen if the volume of people exchanging recharge cards for vendor money exceeds the volume of recharge sold/purchased by vendors? That means people would have to wait in queue for their turn to have their recharge cards sold.
O boy! I can imagine the amount of angry users.
My proposed solution was to have available a buffer cash that would be used when this situation arises. The buffer cash would help speed up airtime to cash conversion. So we as the operators would now have to also begin to sell to vendors in other to refill the buffer. If the problem still persisted, we would just stop accepting airtime till the system normalized.
Final Decision
I decided not to continue when I realized that there was a limit to the amount a single MTN number could transfer (N50,000 I believe) for “Share n Sell” and Airtel’s Me2U isn’t free. What that meant was that we would need a lot of Android workers to reduce the effect of MTN’s transfer limitation and adjust commisions on the airtime to commodate Airtel’s charges.
This idea was just too hard to accomplish; So many challenges. Each supposed solution has its own inefficiencies. It just didn’t make sense to continue. Maybe in the future, I (or someone) will find a way to make payments better for Nigerians.
For now, I’ll just play FIFA14 .
This post first appeared on Ken’s blog.