EasySwitch is a unified Python SDK for Mobile Money integration across major aggregators in Africa. It provides a single, consistent interface to simplify payment processing, reduce code duplication, and accelerate development.
# EasySwitch😎 Python Library
# What is EasySwitch?
**EasySwitch** is a unified **Python SDK for Mobile Money** integration across major aggregators in West Africa. It provides a single, consistent interface to simplify payment processing, reduce code duplication, and accelerate development.
# Why EasySwitch?
Integrating different payment providers usually means learning different APIs, handling inconsistent error messages, and rewriting code to switch providers. EasySwitch was created to eliminate this complexity:
- 🚀 Accelerate your integrations
- 🔁 Switch providers without changing your code
- 🧱 Leverage a robust, type-safe, async-first architecture
- 🌍 Support local and international aggregators
## Currently Supported Providers
CinetPay
Semoa
PayGate
Bizao
FedaPay
PayStack
Airtel Money
## 🚀 Features
- 🔌 Unified API for multiple payment gateways
- ⚙️ Supports configuration from `.env`, JSON, YAML, or native Python dict
- 🔐 Centralized management of API keys and credentials
- 📈 Fully customizable logging (file, console, rotating, compression)
- 🧩 Extensible via a plugin-like adapter registration system
- ✅ Strong **Exception** handling
- ✅ **Asynchronous** support for optimal performance
- ✅ **Automatic Retry** in case of network failures
---
## Community & Support 💬
- Documentation 📚 (under contructions.)
- Issue Tracker 🐛
---
## Prerequisites
You need to have at least 3.13 version of python to be able to continue.
## Install
```sh
# Uising pip
pip install easyswitch
# Or using uv
uv add easyswitch
```
# Core Concepts
## ⚙️ Configuration
EasySwitch uses a centralized configuration object to define providers, credentials, default settings, and adapter mappings.
### **1. ⚙️ Supported Configuration sources**
| Source | Description | Example |
|-----------------------|---------------------------------------------|---------|
| **Environment Variables** | Load configs …