A Stripe-inspired MERN payment gateway for African businesses with API key management, payment links, analytics, AI business insights, and role-based access control.
# PayAfric
**Simulated payment gateway** built with the MERN stack — merchants accept
checkout payments through shareable links, manage products and customers, and
request payouts, while admins oversee the platform. Inspired by Stripe and
Paystack.
> **Important:** All payments in PayAfric are **simulated**. No real money is
> processed and no live payment provider is contacted. Documented test cards
> drive deterministic success/failure outcomes for demos and tests.
## Overview
PayAfric provides a full merchant dashboard and admin panel around a simulated
checkout flow:
1. Merchants register (`user` role), create a business profile, and add products.
2. They generate payment links (with QR codes) and share them with customers.
3. Guests open a public checkout page and pay with simulated card details.
4. Successful payments create transactions, update customer history, emit
webhooks, and notify the merchant in realtime.
5. Merchants request payouts from available balance; admins approve and complete
them (still simulated settlement).
Roles:
| Role | Who | Capabilities |
| ---- | --- | ------------ |
| `user` | Merchant | Business, products, links, checkout revenue, customers, API keys, webhooks, payouts, analytics, notifications |
| `admin` | Platform staff | Users, businesses, transactions, payouts, keys, webhooks, audit logs, platform settings, admin dashboard |
Customers **never** create accounts — they pay as guests via payment links.
## Features
### Completed modules
- **Auth** — register (merchant only), login, logout, JWT profile get/update, RBAC (`merchant` | `admin` | `support` | `finance` | `compliance` | `super_admin`), account lockout, Super Admin seed
- **Business** — merchant business profile CRUD + logo upload + verification status
- **Products** — catalog CRUD, SKUs, images, status, stats
- **Payment links** — product/custom links, slug + QR, regenerate, stats
- **Checkout (simulated)** — public checkout by slug, process payment, succ …