A payment gateway that integrates with some African payment gateways and banks i.e Flutterwave, Paystack, Opay, etc
# PawaPay Payment Gateway
A comprehensive payment gateway integration service that provides a unified interface for multiple African payment gateways and banks. This .NET 7.0 application enables seamless integration with Flutterwave, Paystack, Opay, and other payment providers through a single, consistent API.
## 🚀 Features
- **Multi-Gateway Support**: Integrate with multiple payment providers (Flutterwave, Paystack, Opay) simultaneously
- **Unified API**: Single interface for all payment operations across different providers
- **Gateway Management**: Dynamic gateway registration and management with priority-based routing
- **Transaction Operations**:
- Receive payments (payment links)
- Send funds (bank transfers)
- Query transaction status
- Validate bank account numbers
- Check gateway balance and availability
- **Intelligent Routing**: Automatic gateway selection based on priority and availability
- **Error Handling**: Comprehensive error handling with email notifications
- **Swagger Documentation**: Built-in API documentation for easy integration
- **Docker Support**: Container-ready for easy deployment
## 🏗️ Architecture
The project follows a clean architecture pattern with clear separation of concerns:
```
PawaPayGateway/
├── Domain/ # Domain entities, interfaces, and business logic
│ ├── Entities/ # Domain entities (Gateway, etc.)
│ ├── Interfaces/ # Core interfaces (ITransactionProvider, IBankTransactionProvider)
│ ├── Enums/ # Enumerations (GatewayType, TransactionStatus, etc.)
│ ├── Models/ # Request/Response models for each gateway
│ └── Responses/ # Common response models
├── Infrastructure/ # Infrastructure implementations
│ ├── Services/ # Gateway service implementations
│ ├── Implementations/# Core implementations (GatewayManager, RepositoryBase)
│ ├── Configs/ # Configuration classes
│ └── Data/ # Data context and database setup
├── Application/ …