How transactions flow through the mobile money ecosystem

In the previous topic, we described the component’s that make up the mobile money ecosystem. Now let’s look at some use cases to see how they interact with these components. The use cases we will cover include peer-to-peer transfers, customer-to-business payments, business-to-consumer payments, and balance checks.

Peer-to-peer transfer

We’ll start with an easy example, the peer-to-peer (P2P) transfer.

Let’s say John wants to send $20 to Sarah via the USSD channel. He enters *444# on his mobile device, which is the registered short code for the mobile money service on the USSD gateway. The transaction then moves from his mobile device, through various cell phone towers, and ends up at the USSD gateway.

The USSD gateway recognises the short code as the mobile money service and renders the mobile money menu, which has been preconfigured on the USSD gateway, to John who views it on his mobile device. The menu presents various options provided by the mobile money operator. Let’s say option 1 is “Withdraw cash”, option 2 is “Send money, and option 3 is “Pay bill”. In our example, John wants to send money to Sarah so he enters “2” on his mobile device.

This input goes back to the USSD gateway, which now knows it needs to ask John for the mobile number of the customer he wants to send the money to. John receives a prompt on his mobile device and he enters Sarah’s number. This input goes back to the USSD gateway, which now knows it needs to ask John how much money he wants to send. John gets a prompt on his mobile device, and he enters the amount, in this case, $20. This input goes back to the USSD gateway, which now knows it needs to ask John for his mobile money account PIN. John gets a prompt on his mobile device and enters his PIN, which goes back to the USSD gateway.

At this point, the USSD gateway has all the information it needs so it instructs the core wallet platform to perform the $20 P2P transfer from John to Sarah using the encrypted PIN. The core wallet platform debits John’s mobile money account and credits Sarah’s mobile money account, and then responds back to the USSD gateway to say the transfer is complete. It also sends an instruction to the SMSC platform to send both John and Sarah SMSs to notify them of the transaction and their new balances.

This is a very simple example involving the USSD gateway and core wallet platform components.

In this example, the USSD menu is rendered by the USSD gateway itself. However, depending on the specific mobile money operator and their preferred architecture, the rendering of the USSD menu can happen on the core wallet platform

Customer-to-business payment

Now let’s take it up a notch and use a customer-to-business (C2B) payment example.

Let’s say John has ordered a $5 meal at KFC and now needs to pay for it. He enters *444# on his mobile device. As in the previous example, the USSD gateway renders the USSD menu. John views the menu and selects option 4 to “Pay merchant”.

This input goes back to the USSD gateway. On the USSD gateway, it is configured that when option 4 is selected, it hands control of the menu interaction over to another platform. In this case, it hands over to the Payment gateway which continues the conversation with John. This is seamless on the frontend and John is unaware of the handover.

The Payment gateway now knows it needs to ask John for the merchant’s short code. John receives a prompt on his mobile device and enters KFC’s short code. This input goes back to the payment gateway, which now knows it needs to ask John for the amount to be paid and his mobile money account PIN, which it will encrypt.

The payment gateway now has all the information it needs, so it initiates a payment request to the core wallet platform. Throughout the payment, it is the payment gateway’s responsibility to notify the core wallet platform of the payment, notify KFC that there has been a payment into their mobile money account, and notify John, via USSD or SMS, that the payment was successful.

In this example, the transaction came in via the USSD gateway and the menu was handed over to the payment gateway. Once it got all the information, the payment gateway then communicated with the core wallet platform, the third-party service provider, in this case, KFC, and the SMSC which sent the confirmation SMS to John.

Business-to-consumer payment

Let’s take a look at another example, the business-to-consumer (B2C) payment.

Let’s say KFC wants to pay an employee salary. KFC’s system initiates the payment via the payment gateway API channel. As mentioned previously, the API channel allows systems to speak to one another. As part of the interaction, KFC’s system would specify their business short code, the employee they want to pay, as well as the salary amount.

The payment gateway receives the transaction from the KFC system, and then performs the required authentication, authorisation and validation. When this is complete, it instructs the core wallet platform to perform the B2C. The core wallet platform debits the KFC wallet and credits the employees wallet. When the payment is completed, the core wallet platform comes back to the payment gateway to confirm it was successful. Finally, the payment gateway responds back to KFC, who initiated the transaction, that it was successful.

As you can see, the specific use case determines which components of the mobile money ecosystem are involved in a transaction. What is important for you to understand is that the payment gateway is a very powerful orchestration engine that facilitates transactions based on their specific use cases. In other words, it allows for the configuration of business logic, which means you can make specific things happen based on the specific use case at hand.

Balance check

There are some use cases that don’t involve the payment gateway.

For example, let’s say John wants to check the balance of his mobile money account. He initiates the transaction by entering the mobile money USSD short code on his mobile device and selects the “Balance check” option. The USSD gateway sends an instruction directly to the core wallet platform requesting John’s balance. The core wallet platform responds with John’s balance, which is displayed on his mobile phone by the USSD gateway.

Summary

In this topic, we used four common use cases – namely P2P, C2B, and B2C transactions, as well as account balance checks – to illustrate how transactions interact with various mobile money ecosystem components as they flow through the system.

In the next topic, we will discuss the two types of payments that occur on the mobile money ecosystem – namely single-stage and multi-stage payments – and the different roles the ecosystem components play in them.