Wallet Overview
The Sabi Wallet Service is a versatile platform designed to cater to various Sabi products, as well as the needs of other clients seeking to integrate their online products with a payment service. This service prioritizes security and provides wallet creation services for both personal and business users, facilitating a wide range of financial transactions. Its architecture incorporates multiple components to ensure the reliability and security of its operations.
**Creation of User and Wallet Profiles:
Business Profiles:**
- Merchants & Agents: These users utilize the wallet for making payments for purchased goods and receiving commissions from Sabi.
- Agency Banking: Wallets are created for agency banking customers, primarily for Cash-in and Cash-out transactions. Commission wallets are also established for this user category.
- VAS Transactions: Business users can leverage their wallets to perform Value-Added Service (VAS) transactions.
Person Profiles:
- Customers: These users use the wallet for purchasing goods and conducting transactions with agency banking users.
- VAS Transactions: Customers have the capability to perform VAS transactions using their wallets.
Virtual Bank Accounts: Each customer is assigned a virtual bank account number, corresponding to their wallet ID on Ameta.
Wallet Creation Process:
- A unified endpoint is exposed to all clients for wallet creation, accommodating various parameters.
- Wallet creation involves multiple sequential calls to Ameta, which may result in non-instantaneous account creation due to the process-driven nature of these calls.
Wallet Architecture:
- Client: This refers to diverse platforms integrating with the Wallet Service, including Sabi and third-party clients.
- User Mgt/Wallet Mapper: Responsible for the centralized management of all users within the wallet service. It also includes a mapper for associating wallet accounts with users in cases where the user management service is inaccessible.
- Wallet Microservice: Comprising wallet integration and logic components:
- Sync service: This component patiently awaits the completion of operations before responding to client requests.
- Producer Package: It accepts client requests and forwards them to the message broker (Azure Service Bus). While waiting, it anticipates responses from external parties or internal subscribers. Various processes have distinct exchange names.
- Consumer Package: This component retrieves messages from the message broker. These messages can come from the producer package or other parties with service bus configurations, based on the subscribed exchange names.
- Ameta: A crucial wallet service provider integrated with a core banking application to ensure seamless account creation and processing. It also facilitates payment collection through intra and inter-bank transfers.
- CoralPay: An essential platform for managing payments and collections across multiple omni channels, including USSD, QR codes, transfers, contactless payments (NFC & Bluetooth), and payment links.