How to start an agent banking startup.
I had written this in 2020 (while I was a PM at Kudi, now Nomba) and I had recently just seen it in my draft and thought to publish it anyway.
The agent banking architecture
Agent banking (popularly known as mobile money) is one of the many segments of fintech in Africa and more particularly, Nigeria that has experienced fast and phenomenal growth. It has seen early players like Paga and Quickteller who many would say did the initial job of educating the market about the huge potential the underserved market holds. Later on, innovation came into the market when YC-funded startup- Kudi also joined the host of other players providing affordable and accessible financial services to millions of Nigerians in underbanked and unbanked communities. Today, there are over 100 agent banking platforms in Nigeria. And depending on who you ask, the major players are- Moniepoint, Opay, Paga, Firstmonie, and Kudi.
Agent bankers are known prominently for performing card withdrawal (cashout) transactions via POS. The simple transaction that happens in a minute or less involves a couple of players, a couple of which I will highlight below and state their roles. And the fees are usually shared between all these players.
Players involved in completing a successful card transaction.
Banks
There are two banks involved in a withdrawal transaction- the issuing bank (the bank of the cardholder) and the acquiring bank (the bank of the agent banking company). For this bit, I will focus on the function of the acquiring bank. As I have stated above, this is the bank where the merchant (which in this case is the agent banking company) is settled into. Any commercial can serve as your acquiring bank.
PTSP (Payment terminal system provider)
These stakeholders are responsible for the operations and management of the POS terminals. They issue what is referred to as “terminal ID”. A system that creates a track for transactions to go through from start to finish.
The PTSPs sometimes are also responsible for terminal repairs and POS support from time to time. Examples of some players are Global accelerex, etop, itex, etc. The application that runs on the terminal is built and managed by the PTSPs. Merchant integrates the PTSPs and gets alerted of their bank transactions via APIs. Many major Agent banking companies now have a PTSP license to bypass traditional PTSP players and to increase their margins.
NIBSS
This body is responsible for debiting and crediting and hence settlement of the issuing bank and the acquiring bank respectively.
The Switch/processor:
For most local players, Interswitch serves as the primary switch. Their role is to serve as the messenger that asks Nibss to debit the issuing bank of the value and tells Nibss to credit the acquiring bank of the value via the card scheme (we will come to that later).
When a customer approaches an agent in a town in Ibadan, the agent tells the agent that she would like to perform a withdrawal transaction of 5000 Naira. Let’s assume that the customer uses a GTB card, and the agent is using an Access terminal that’s running an itex application. Once the terminal is inserted and the transaction is fired, itex in this case takes that transaction and gives it to Interswitch. Interswitch picks that request and instructs Nibss to debit the customer’s GTB account of 5000 naira + charges. Interswitch further instructs Nibss to credit access bank. Nibss at this point doesn’t know Kudi, hence why the terminal ID is very important for the transaction to get to the final destination.
It would be important to note that all these are mere instructions and no settlement happens until t+1. So after t+1, Interswitch uploads a settlement report on a platform that banks have access to and so banks can pull those settlement reports, and banks can then also share this report with their merchants to process reconciliation and possible chargebacks.
Bank transfers are another transaction done via agent networks. The most frequent use case is for customers who have cash and need to send it to a Nigerian bank account.
It is important for agents to have a good balance of these transaction types (i.e withdrawals and transfers) to help balance their cash balance.
More recently, because of the high cost of POS terminals and also the limited supply of POS terminals in the market, agent banking startups like Kudi have been looking at ways to reinvent the wheel with the introduction of USSD withdrawal, a method of withdrawal that is easier and requires less friction compared to the card option.
Possible ways to get this done are via:
- Direct integration with the banks or
- Integrate with payment processors that already enable NIP transfers like Flw and pysk.
- Using a proxy service like coral pay. (I could do a deep dive into this upon request)
Building an agent banking business in Nigeria:
I will highlight below the steps involved in doing this.
Wallet system:
First, a wallet system needs to be built. All transactions happen from this wallet and all transactions via terminals are done in this wallet. Depending on the skill of your team, it should take about one month to build the infrastructure that the wallet will sit on as well as microservices that will be communicating to the core service and other useful services.
PTSP integration
Because the PTSP runs the application, there will be a need to do an integration with a PTSP. This integration makes sure your system listens for transactions that happen via all terminals and your system can then immediately take action to credit the wallet of the agent/user using that terminal.
What this means is that every agent with a terminal (with a unique terminal ID) has that terminal mapped to their agent banking wallet via a simple mapping implementation that can be done via a dashboard (some agent banking companies like Kudi and opay allow agents do this mapping on the app)
Transactions performed on the terminal that has been mapped to an agent’s wallet would automatically drop into the agent’s wallet.
Transfer integration
A few solutions have been able to aggregate all the banks for small mobile money to perform bank transfers from their app. A few of those are flutterwave, gt gaps, paystack and Interswitch. Depending on pricing and SLA, any of these options are great options to start with. As the transactions on the network of the agent banking company grow, there can then be discussions of doing direct nibss integration and direct integration for bank-bank transfers.
Bills integration
A couple of providers provide easy integration for basic bill options like multichoice; vertebrae, Baxi box, etc. These are easier to access compared to the other integration. Pricing is also pretty standard depending on your transaction volume.
Wallet funding
Because transactions like bills and transfers will need to be made off the wallet, there should be a way to fund the wallet.
There are three methods to go about it:
- Card funding
- Monnify (dedicated nuban) by team apt
- Bank transfer
Card funding
For this method of wallet funding. It is as simple as using a paystack or flutterwave to collect payment on a merchant dashboard. The only difference is that paystack or flutterwave or any payment processor does a direct integration with your system to alert you of the transaction status once performed.
Monnify by team apt
This attaches a unique nuban to all users on your network. Once a bank transfer is done to the assigned nuban, their wallet is automatically credited. This would require integration with Monnify
Bank Transfer
Most agent banking apps start with this method. Although crude, it works. What happens is that the customer makes a bank transfer to the account of the company. The system generates a code at the point of creating that transaction on the app. That code is inputted into the narration when the user is making the transfer. Once the transaction alert gets to your system, the system reads that code and credits the user’s wallet with the value of the transaction performed.
It is important that all these integrations are done optimally and because it’s a financial service, several tests are performed to check for edge cases. No one would wanna build a porous system.
Best practices in building and handling terminal management
- Because of how volatile the agent banking space can be, it is important to mitigate fraud and fraudulent activities. It is best to cap transactions to reasonable transaction limits per ticket. And collect KYC when transactions exceed a particular limit.
- Agent banking requires a strong network to succeed. And building that network by yourself, would cost more and take longer. There are big players in different regions, some people who are referred to as super agents. These folks have a strong influence in their regions. Speak to them about your offering and why you stand out. Offer them good deals for onboarding new agents and also extra commission as the agent performs transactions. This is one sure way to grow your network.
- Also on super agents. Because they are closer to the roots, build a system that handles their request preferentially.
- Chargeback can be a mess. Enough time should be taken to think about how to use products to make this menace a lot better for your users.
- The agent app should be built with extra security and security features. The biggest risk for the Agent banking business is usually fraud and fraud attacks. Therefore, ensure that transactions are secure- Take steps like enabling biometric onboarding and ensuring that every transaction, regardless of the amount should be completed with a PIN. Also, ensure that device change should come with 2FA verification. Proper KYC of the user should be verified during onboarding.
- The address of the user should be gotten and if possible verified during onboarding
- CBN requires a couple of KYC for the agent. Make sure these are collected during onboarding.
- Develop metrics that can be measured from time to time to see the performance of your network. Both product-wise and business-wise.
The product components needed
- A mobile app for the agent
- A partner management tool for the super agents
- An internal tool to manage agents and have visibility into transactions and also see the health of your network.
- A USSD app, if you intend to delve into this.
- An issue resolution portal to manage user issues. (intercom can be a good way to start)
The technical infrastructure needed
I don’t have a technical background and might not be able to provide the correct guidance you need here but for most products I had worked on, Java was used on the backend and either of vue or react was used on the front end. An engineer that has had good experience building complex financial infrastructures might be a good point of call in building the technical architecture of your system.
I hope this is useful.
Present-day context.
I have since stopped working in the agent banking space and I have now started a company in the BNPL space and we are growing really well. Check us out here- usezilla.com