Skip to main content

Multi-Tenancy

FyberPay is a multi-tenant platform. Each ISP organization gets:
  • A unique subdomain (e.g., acme.fyberpay.com)
  • Isolated data (subscribers, invoices, payments)
  • Independent configuration (plans, gateways, branding)
  • Separate subscriber portal (acme.fyberpay.com/portal)

Roles

Subscription Lifecycle

A subscriber moves through these states:
  • Active: Full internet access, RADIUS authorized
  • Grace: Overdue but still connected, reminder SMS sent
  • Walled Garden: Redirected to payment portal only (captive portal)
  • Suspended: Disconnected, RADIUS rejects authentication

Billing Cycle

FyberPay generates invoices automatically based on each subscriber’s billing cycle:
  1. Invoice created on the billing date
  2. STK Push sent automatically (if M-Pesa configured)
  3. Payment reconciled when M-Pesa callback received
  4. Dunning triggered if payment not received within grace period

Admin UI Structure

FyberPay’s admin UI is organized into hubs, each grouping related operational surfaces under one tab: Settings are grouped at the bottom of the sidebar (General, Team, Billing & Dunning, Payment Gateways, Messaging, Network).

Network Integration

FyberPay connects to your network infrastructure:
  • RADIUS (FreeRADIUS): Authentication, authorization, and accounting for PPPoE and Hotspot subscribers. See the FreeRADIUS integration.
  • MikroTik RouterOS: API-driven PPPoE / Hotspot / CPE-management services via the NasService model, with reconciler-based drift detection and a reserved-set guard against management-LAN corruption. See the MikroTik integration and the bridge-as-parent guide.
  • GenieACS (TR-069): CPE auto-configuration for ONTs and routers (L3 management). See the GenieACS integration.
  • SmartOLT: GPON OLT management (L2 / OMCI for ONUs).
GenieACS and SmartOLT cover complementary layers: GenieACS handles the L3 / TR-069 path (WiFi config, firmware, customer-router parameters), SmartOLT handles L2 / OMCI on the OLT (ONU optical signal, port enable/disable, SLA enforcement). Most ISPs run both.

Event-Driven Architecture

All operations in FyberPay flow through a transactional outbox:
  1. Business operation executes (e.g., payment recorded)
  2. Domain event written to outbox in the same transaction
  3. Background processor dispatches event to listeners
  4. Listeners handle side effects (RADIUS sync, SMS, ledger entry)
This ensures consistency: if the business operation succeeds, the side effects are guaranteed to eventually execute.