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 β¦