# Daraja M-Pesa Gateway
A comprehensive Spring Boot microservice for seamless integration with Safaricom's M-Pesa Daraja API. This gateway provides STK Push payments, payment confirmations, validations, and merchant configuration management with enterprise-grade features.
## 🚀 Features
### Core Payment Processing
- **STK Push Integration**: Initiate mobile payments directly to customer devices
- **Payment Callbacks**: Handle M-Pesa payment confirmations and validations
- **Transaction Logging**: Complete audit trail of all payment activities
- **Multi-merchant Support**: Configure multiple paybill accounts
### Enterprise Features
- **Comprehensive API Documentation**: Full Swagger/OpenAPI integration
- **Database Migrations**: Flyway-managed PostgreSQL schema evolution
- **Docker Support**: Containerized deployment with Docker Compose
- **CI/CD Pipeline**: Automated testing, building, and deployment
- **Semantic Versioning**: Automated version management and releases
### Security & Reliability
- **Credential Encryption**: Secure storage of M-Pesa credentials
- **Environment Configuration**: Flexible configuration management
- **Error Handling**: Comprehensive error responses and logging
- **Health Monitoring**: Built-in health checks and monitoring endpoints
## 📚 API Documentation
### Interactive Documentation
Access the comprehensive API documentation at:
- **Swagger UI**: `
localhost`
- **OpenAPI JSON**: `
localhost`
### API Groups
- **Payment APIs**: STK Push initiation and callback handling
- **Configuration APIs**: Merchant paybill configuration management
### Key Endpoints
| Method | Endpoint | Description |
|--------|----------|-------------|
| `POST` | `/mobile/request-payment` | Initiate STK Push payment |
| `POST` | `/mobile/stk` | M-Pesa callback handler |
| `POST` | `/mobile/confirm/payment` | Payment confirmation handler |
| `POST` | `/mobile/validate/payment` | Payment validation …