Python FastAPI mobile money API for Africa
# Africa Fintech API
Production-Grade Mobile Money API for Africa
## Overview
A production-ready mobile money and fintech REST API inspired by systems like M-Pesa. Supports user wallets, peer-to-peer transfers, multi-currency balances (ZAR, KES, NGN, GHS, USD), and cross-border remittance simulation.
## Architecture
```
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Client │──────▶│ FastAPI │──────▶│ PostgreSQL │
│ (Mobile/ │ HTTP │ (Python │ SQL │ (Async via │
│ Web) │◀──────│ 3.12) │◀──────│ SQLAlchemy) │
└──────────────┘ └──────┬───────┘ └──────────────┘
│
┌────────▼────────┐
│ Redis │
│ (Cache/Queue) │
└─────────────────┘
```
## Quick Start
### Docker (Recommended)
```bash
docker-compose up --build
```
API documentation (Swagger UI):
localhost
### Local Development
```bash
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
uvicorn app.main:app --reload
```
## API Endpoints
| Method | Endpoint | Description | Auth |
|--------|-----------------------------|--------------------------|----------|
| POST | `/api/v1/auth/register` | Register a new user | None |
| POST | `/api/v1/auth/login` | Login and receive JWT | None |
| GET | `/api/v1/auth/me` | Get current user profile | Bearer |
| POST | `/api/v1/wallets` | Create a new wallet | Bearer |
| GET | `/api/v1/wallets/me` | Get wallet balance | Bearer |
| POST | `/api/v1/wallets/fund` | Fund wallet (deposit) | Bearer |
| POST | `/api/v1/transactions/transfer` | P2P money transfer | Bearer |
| GET | `/api/v1/transactions/history` | Transaction history | Bearer |
| GET | `/health` | Health check | None |
## Tech Stack
- **Python 3.12** — modern async runtime
- **FastAPI** — high-performance …