Django-based service for managing multiple M-Pesa C2B accounts, transactions, and SDK integrations with full user-level account control.
# M-Pesa C2B Account Management API
### Problem
Small businesses often manage multiple M-Pesa C2B accounts across different companies. Monitoring transactions, creating accounts, and handling tokens across these accounts is fragmented and error-prone.
### Solution
This Django service provides a unified backend for managing multiple M-Pesa accounts per user, supporting:
- User signup, login, and password management
- Account verification and token-based authentication
- Listing all accounts for a single user
- Creating and deleting accounts
- Access token refresh and invalidation
- Integration with M-Pesa APIs for:
- C2B and B2C transaction push
- SDK-based transaction retrieval
All account and transaction data is stored in a TMP database for rapid access, enabling small businesses to aggregate and monitor all M-Pesa activity in one place.
### Architecture
- Django REST Framework for API endpoints
- TMP-backed persistence for account and transaction metadata
- External API connectors to M-Pesa GoLive developer endpoints
- Asynchronous transaction processing for C2B/B2C pushes
- Token management layer for user-level access control
### Use Case
Small business owners can integrate multiple M-Pesa accounts (personal or company) into a single dashboard. They can query account balances, transaction histories, and initiate payments programmatically. This backend can also serve as the foundation for building POS systems connected to M-Pesa.
### Technologies
- Python, Django, Django REST Framework
- TMP database
- M-Pesa GoLive API integration
- Async Python processing
### Scope & Limitations
- Focused on account management and transaction aggregation
- Not a full banking or financial product
- Transaction reliability depends on M-Pesa API availability