# M-Pesa Authenticator Service
A secure, production-ready service for processing M-Pesa B2C (Business to Customer) payments with OAuth2 authentication, multi-client support, and comprehensive audit logging.
## π Features
- π **OAuth2 Authentication**: Secure API access with client credentials flow
- π₯ **Multi-Client Support**: Multiple API clients with individual configurations
- π³ **Multi-Configuration**: Support for multiple M-Pesa shortcodes (sandbox & production)
- π **Token Management**: Automatic OAuth token caching with Redis
- π° **Queue Processing**: RabbitMQ for rate-limited transaction processing (2 TPS)
- π **Comprehensive Audit Logs**: Track every API call with client, IP, and status
- π‘ **Webhook Callbacks**: Notify clients when transactions complete
- π **Encrypted Storage**: All sensitive credentials encrypted at rest
- π **ngrok Integration**: Easy callback URL management for development
- π± **React Frontend**: User-friendly admin dashboard
---
## π Table of Contents
- Architecture
- Quick Start
- Configuration
- M-Pesa Setup
- API Usage
- Utilities
- Troubleshooting
- Production Deployment
---
## ποΈ Architecture
```
βββββββββββββββ
β Clients β (OAuth2 Authentication)
ββββββββ¬βββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FastAPI Application β
β βββββββββββββββ ββββββββββββββββ ββββββββββββββ β
β β OAuth2 β β Endpoints β β Audit Log β β
β β Middlewareβ β (B2C, etc) β β Middlewareβ β
β βββββββββββββββ ββββββββββββββββ ββββββββββββββ β
ββββββββ¬βββββββββββββββββββ¬βββββββββββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββ βββββββββββββββ
β PostgreSQL β β RabbitMQ β
β (Database) β β (Queue) β
βββββββββββββββ ββββββββ¬βββββββ
β
βΌ
βββββββββββββββ
β Worker β (2 TPS)
ββββββββ¬βββββββ
β
βΌ
βββββββββββββββ
β M-Pesa API β
ββββββββ¬βββββββ
β
ββββββββΌβββββββ
β Callback β
β (via ngrok)β
ββββββββ¬βββββββ
β
ββββββββΌββββββ β¦