Complete reference for capabilities, roles, architecture, integrations, test data, and the product roadmap. Built for GreenLeaf Technology Solutions.
PayGO is a multi-tenant PAYG solar management platform covering the full lifecycle of a solar device from warehouse to verified carbon-credit installation.
Register, onboard and manage solar customers with full KYC (name, national ID, GPS, phone). Bulk CSV import for 1,000+ customers at once.
Track solar devices (20W–200W) from 8 manufacturers. Manage lifecycle states: Unassigned → Assigned → Active → Suspended → Decommissioned.
Generate HMAC-SHA256 9-digit tokens compliant with OpenPAYGO Token Standard v2.0. Token types: ADD_TIME, SET_TIME, DISABLE, UNLOCK, COUNTER_SYNC.
Accept Mobile Money (M-Pesa, Airtel, Tigo), Cash, USSD, and in-app payments. Arrears tracking, approval workflows, and payment schedules.
Digital Measurement, Reporting & Verification for REA carbon credits. Community approval → site survey → contract → installation → photos → GPS verify → M&E → final approval.
Automatic batch submission of customer installations to the Rural Electrification Agency. Auto-submits at 50+ records, CSV download per batch, no duplicate re-submissions.
10 template types: payment confirmation, token delivery, arrears notice, device suspended, welcome. Providers: Africa's Talking, Twilio, Selcom. Per-tenant templates.
Multiple solar companies on one platform with full data isolation, custom branding, per-tenant SMS templates, and role-based access per company.
Payment statistics, device utilisation, customer portfolio, dMRV pipeline status, REA submission history. Downloadable CSV reports.
🧪 For testing purposes only
These credentials are provided so you can explore how the system works across different roles. Use the test environment — it is safe to create, edit, and delete data here without affecting live operations.
Test environment: https://test.paygo-africa.com
| Role | Username | Password | What They Can Do | Screens |
|---|---|---|---|---|
| system_admin | sysadmin | SysAdmin@123 | Full access across ALL tenants. Create tenants, manage all users, view all data, override anything. | All 15 screens |
| business_admin | mary.juma | SysAdmin@123 | Manage own tenant: create users, register customers, add devices, approve dMRV final step, submit to REA. | Home · Customers · Devices · Payments · dMRV · Areas · Users · Tenants · Reports · REA · Billing |
| commercial_officer | tst_co | PayGO@Test1 | Approve pending payments before tokens are released. View REA queue, submit batches, manage SMS templates. | Home · Payments · Devices · REA · Billing · More |
| technician | tst_tech | PayGO@Test1 | Execute dMRV steps 2 (site survey), 4 (installation), 6 (photo evidence). View assigned customers and devices. | Home · Customers · Devices · dMRV Pipeline |
| sales_rep | peter.kilemba | SysAdmin@123 | Register new customers, record payments, initiate dMRV step 3 (contract signing). Cannot approve payments. | Home · Customers · Payments · dMRV Pipeline |
| village_chairman | ali.hassan.vc | SysAdmin@123 | Approve dMRV step 1 (community approval) for customers in their assigned area. Read-only view of area customers. | Home · dMRV Pipeline · Areas & Chairmen |
| m_and_e_officer | tst_mne | PayGO@Test1 | Execute dMRV step 7 (monitoring & evaluation). View all records across tenants. Generate dMRV compliance reports. | Home · Customers · dMRV Pipeline · Reports |
⚠ Security Notice
Change all default passwords before exposing the system to production traffic. Passwords must be 8+ characters with uppercase, lowercase, digit, and special character.
Account Lockout Policy
5 failed login attempts within 5 minutes triggers a 15-minute lockout. System admin can unlock accounts manually from the Users screen.
The automated test suite covers end-to-end API flows across all services. Run with python tests/test_api.py (local) or via GitHub Actions CI on every push.
50 Device Templates tests/seed_devices.csv
8 manufacturers · 4 wattage classes · pre-configured OpenPAYGO starting codes and secret keys · REA project flags. Import via Admin Dashboard → Devices → Bulk Upload.
50 Customer Templates tests/seed_customers.csv
Realistic Tanzanian names, phone numbers (Vodacom/Airtel/Tigo), national IDs, 20 area codes across 15 regions, GPS coordinates. Import via Admin Dashboard → Customers → Bulk Upload.
Web Browser
Admin & analytics dashboard
Mobile App
PayGO Touch (Android)
USSD / SMS
Feature phones
Auth
Login · JWT · Roles
Devices
Inventory · Tokens
Customers
KYC · dMRV · REA
Payments
Mobile money · Cash
Notifications
SMS · Alerts
Database
Customers · Payments · Devices · Contracts · dMRV · Tokens
Cache
Sessions · Rate limits · API response cache
External Services
Mobile Money
Payment collection
SMS Gateway
Token delivery
REA API
Carbon credits
File Storage
dMRV photo evidence
Tenant (1) ──── (many) User Tenant (1) ──── (many) Device Tenant (1) ──── (many) Customer Tenant (1) ──── (many) AreaCode Customer (1) ──── (1) Contract ←── links to ──→ Device Contract (1) ──── (many) Payment Payment (1) ──── (1) Token (OpenPAYGO 9-digit code) Customer (1) ──── (1) DMRVRecord (8 steps, sequential) DMRVRecord(1) ──── (1) ProspectLog (REA submission) AreaCode (1) ──── (many) Customer AreaCode (many)─ (many) VillageChairman (User) DeviceType(1) ──── (many) Device Manufacturer(1)─── (many) Device
Customer initiates payment
Via mobile money (STK Push to phone), USSD (*150#), Cash to sales rep, or in-app.
Payment Service validates
Checks customer exists, contract is active, verifies mobile money confirmation via provider API.
Commercial Officer approval (cash only)
Cash payments queue for CO approval. Limits: 3 per day, 10 per week per approver.
Arrears cleared first
If balance is overdue, payment covers arrears before adding new credit days.
OpenPAYGO token generated
HMAC-SHA256 9-digit token calculated from device secret key + token counter. Type: ADD_TIME.
SMS sent to customer
"Malipo ya TZS 10,000 yamepokelewa. Nambari yako ya siku 30: 123 456 789. Asante!"
Customer enters token on device
Device validates token locally (no internet needed). If valid, credit time added.
| Step | Name | Role | What Happens | Evidence |
|---|---|---|---|---|
| 01 | Community Approval | village_chairman | Chairman verifies customer lives in their area and approves installation | Digital signature + timestamp |
| 02 | Site Survey | technician | Technician visits site, captures GPS coordinates, assesses roof/electrical readiness | GPS lat/long, site notes |
| 03 | Contract Signing | sales_rep | Customer signs PAYG contract, payment schedule agreed | Contract ID, customer PIN |
| 04 | Device Installation | technician | Device installed, serial number recorded, customer trained on use | Device serial, install timestamp |
| 05 | Initial Payment | sales_rep | Down payment collected, first token generated and delivered | Payment reference, token |
| 06 | Photo Evidence | technician | Photos uploaded: device on wall, solar panel on roof, customer holding token | 3× geotagged photos |
| 07 | M&E Verification | m_and_e_officer | Independent officer reviews all evidence, visits site if required | M&E approval notes |
| 08 | Final Approval | business_admin | Business admin approves complete record for REA submission | Approval timestamp + REA batch ID |
1. Register customer — Sales rep captures name, phone, national ID, GPS, area code via PayGO Touch app (works offline, syncs when online).
2. Select device — Choose available device from inventory (must be UNASSIGNED). Assign to customer → device becomes ASSIGNED.
3. Create contract — Set plan price, down payment, monthly amount, grace period. System auto-calculates payment schedule.
4. Process down payment — First payment generates first OpenPAYGO token. Device status → ACTIVE. SMS sent with token.
5. dMRV (if REA project) — If device is flagged as REA project, the 8-step verification must complete before REA submission.
6. Ongoing payments — Each payment generates a new token, extending device runtime. Missed payments → device auto-suspended after grace period.
How PayGO communicates with the outside world — one platform at a time.
Payment collection and confirmation
How it works (Outbound — STK Push)
/webhook/mobile-money with HMAC-SHA256 signatureConfig required
MPESA_CONSUMER_KEY=... MPESA_CONSUMER_SECRET=... MPESA_SHORTCODE=123456 AIRTEL_API_KEY=... TIGO_API_KEY=... WEBHOOK_HMAC_SECRET=...
Webhook URL: https://paygo-africa.com/api/v1/webhook/mobile-money
Token delivery, payment confirmation, arrears notices
Flow (Outbound only)
Config required
AT_API_KEY=... AT_USERNAME=... AT_SENDER_ID=PayGO TWILIO_ACCOUNT_SID=... TWILIO_AUTH_TOKEN=... TWILIO_FROM=+1XXXXXXXXXX
10 pre-built templates. Business Admins and COs can edit templates per tenant via the CMS.
Not yet integrated — roadmap item
WhatsApp is the most widely used messaging app in East Africa. Integration would allow:
How to get there:
whatsapp provider to Notification Service alongside SMS providers/webhook/whatsapp for inbound messages (customer self-service)User welcome emails, billing invoices, system alerts
Current usage
Config required
SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=noreply@paygo-africa.com SMTP_PASS=... # app-specific password FROM_NAME=PayGO Platform
Carbon credit registration for rural electrification
https://tz.prospect.energy/api/submissions with encrypted API tokenHosting · Database · Auth · File Storage · API layer
Database
Primary persistent data store. Stores all tenants, customers, contracts, payments, and dMRV records with real-time sync.
API Layer
All microservice logic is containerised and deployed for low-latency access in East Africa.
File Storage
dMRV photo evidence and uploaded documents are stored with per-tenant folder isolation and secure access controls.
Planned expansion services ranked by business impact. Detailed implementation plans are maintained in internal documentation.
Full implementation details, technical specifications, and monetisation models are available to authorised team members in the internal documentation.
Each verified dMRV installation generates Verified Carbon Units. PayGO brokers these credits to international buyers via established carbon markets.
Revenue shareCustomers with 6+ months of consistent payments have a proven credit profile. Platform offers micro-loans and a savings pool backed by payment history data.
Financial inclusionCustomers send simple messages to receive their token, check their balance, or trigger a payment — no sales rep or USSD code needed.
Customer experienceBuilt-in earnings wallet for sales agents — tracks commissions per activation and payment, enables withdrawals via mobile money, replaces manual reconciliation.
Channel growthPAYG financing for water pumps, refrigerators, sewing machines, and phone charging kiosks — all tracked on the same platform alongside the solar device.
Upsell revenueOptional monthly cover added to the payment plan for theft and damage. Claims filed directly in PayGO Touch with photo evidence, processed through a licensed insurer partner.
Recurring revenueLicense the PayGO engine to other solar companies in Kenya, Uganda, Rwanda, and Mozambique. The multi-tenant architecture is already built — expansion requires a self-serve onboarding flow and usage-based billing.
Platform play