ISEP SRS · COMSIP Malawi · v1.0 draft ← COMSIP portal
ISEPINFORMAL SECTOR EMPOWERMENT
Software Requirements Specification

COMSIP Malawi on ISEP. Dedicated ISDBMS tenant with MWK ⇄ USD currency engine.

Requirements for bringing the approved COMSIP Cooperative Development Management Platform and COMSIV Microfinance Management System under the ISEP platform as a country-routed, separately-hosted database engine serving COMSIP Cooperative Union Limited alone.

Prepared by
Waltergates Ghana Limited
24th Street, HS No. 20, New Achimota, Accra
Prepared for
COMSIP Cooperative Union Limited
COMSIP House, Area 6, Lilongwe
Status
v1.0 · Draft for M2 sign-off
05 October 2026
ConfidentialWGL-COMSIP-SRS-001
Document control

About this document

FieldValue
Document IDWGL-COMSIP-SRS-001
Contract milestoneM2 — Requirements Confirmation (Agreement, Annex 7). Sign-off of this SRS is the formal acceptance basis for M2.
Source documents[R1] COMSIP ISDBMS Platform — Product Development Documentation (SDD), approved by COMSIP.
[R2] Software Development, Hosting, License, Implementation and Support Agreement, Waltergates ↔ COMSIP, incl. Annexes 1–7.
[R3] COMSIP ISDBMS Implementation Milestone Tracker.
[R4] ISEP Website prototype (country selection, COMSIP portal).
Order of precedenceWhere this SRS conflicts with the Agreement, the Agreement prevails. New scope in this SRS that is not in Annex 1 is flagged CR and needs a Change Request (Annex 6).

Revision history

VersionDateAuthorChange
0.101 Oct 2026WGL ProductRequirements extracted from SDD [R1] and Annex 1 [R2]
1.005 Oct 2026WGL ProductAdded ISEP country routing, tenant isolation and MWK ⇄ USD engine

Priority key

Must — required for Go-Live (M7). Should — required by end of stabilisation (M8). Could — desirable; scheduled by agreement.

Contents
1Introduction
2Overall description
3ISEP integration & tenancy
4Functional requirements
5Currency engine (MWK ⇄ USD)
6External interfaces
7Non-functional requirements
8Data requirements
9Acceptance & traceability
10Open issues & assumptions
11Approval
COMSIP Malawi on ISEP · SRS v1.02

01Introduction

1.1Purpose

This SRS states what the COMSIP platform must do, how well, and under which constraints — in testable terms. It turns the approved SDD [R1] and the contractual scope in Annex 1 [R2] into numbered requirements that developers build against and COMSIP's UAT team tests against (Annex 4).

1.2Scope

The system is the COMSIP Cooperative Development Management Platform and COMSIV Microfinance Management System, built on Waltergates' ISDBMS. It is delivered as a dedicated tenant of ISEP:

Channels: web portal, offline-first Android app, and a USSD service in English and Chichewa.

1.3Definitions

TermMeaning
ISEPInformal Sector Empowerment Platform — Waltergates' multi-country front door and shared services.
ISDBMSInformal Sector Database Management System — Waltergates' proprietary core platform.
TenantA logically and physically isolated deployment of ISDBMS for one customer (here comsip-mw).
COMSIVCOMSIP's non-deposit-taking microfinance unit.
SLGSavings and Loan Group — the informal group a member joins before graduating to a cooperative.
SSRLPSocial Support for Resilient Livelihoods Programme (donor-funded).
TATraditional Authority — sub-district administrative unit used in reporting.
PARPortfolio at Risk — outstanding loan balance with repayments overdue by more than N days.
MWK / USDISO 4217 codes for the Malawi Kwacha and US Dollar. (MWK is the official code; "MKW" isn't.)
Booked rateThe exchange rate stored on a transaction when it is posted; it never changes afterwards.
Maker-checkerControl where one user enters a record and a different user approves it.

02Overall description

2.1Product perspective

ISEP Ghana already serves cooperatives and partner institutions. COMSIP joins as a second country with its own engine. The ISEP shell handles country choice and branding only; once a user enters the COMSIP tenant, all business logic, data and sessions belong to COMSIP's deployment.

Fig. 1 — Logical view
ISEP landing (isep domain)Country selector · public content · routes to tenant
Ghana tenantISEP cooperative network · GHS · existing ISDBMS DB
Malawi tenant · comsip-mwLaravel API · React portal · Android · USSD · DB isdbms_mw (PostgreSQL/MySQL) · MWK default · AWS Cape Town / Azure SA
Airtel MoneyMobile money
TNM MpambaMobile money
Bank gatewayCOMSIP's bank
USSD / SMSAggregator
COMSIP Malawi on ISEP · SRS v1.03

2.2User classes

User classChannelsMain tasksScope
Union HQ executive (CEO, GM, Finance, Audit, M&E)WebApprovals, analytics, fund disbursement, regulatory and donor reports, FX rate approval (Finance)National
District coordinator / case workerWeb, AndroidField monitoring, group audits, member verification, approving group registrationsDistrict
Field extension workerAndroidOffline registration, training records, first-level loan appraisalAssigned groups
COMSIV credit officerWeb, AndroidAppraisal, disbursement authorisation, PAR tracking, product setupPortfolio
Cooperative governance officer (chair, treasurer, secretary)Web, AndroidMember management, minutes, group savings verification, group financial reportsOwn cooperative
Member / beneficiaryAndroid, USSDBalance, loan status, statements, service requestsSelf
IT administratorWebUsers, configuration, security monitoring, backupsSystem

2.3Operating environment

2.4Constraints

2.5Dependencies

03ISEP integration & tenancy

New requirements that bring COMSIP under ISEP. These sit on top of Annex 1 scope.

IDRequirementPrioritySource
ISEP-01The ISEP landing page shall show a country selector with Ghana and Malawi, visible above the fold and in the site header on every page.MustR4
ISEP-02Selecting Malawi shall route to the COMSIP portal (e.g. /mw or comsip.isep…) with COMSIP branding, Malawi content and MWK as the display currency.MustR4
ISEP-03The selected country shall be remembered on the device and changeable at any time. Switching country shall end any active session in the other tenant.MustR4
ISEP-04The COMSIP tenant shall use a separate database instance, schema, encryption keys, backups and secrets from every other ISEP tenant. No cross-tenant query path shall exist.MustR2 §12.1
ISEP-05Identity shall be tenant-scoped: Ghana ISEP credentials shall not authenticate in the COMSIP tenant and vice versa. JWTs shall carry a tenant claim checked by every API call.MustR2 Annex 5
ISEP-06COMSIP data shall not appear in the ISEP Ghana cooperative directory or any shared analytics unless COMSIP gives written consent per dataset.MustR2 §13.2
ISEP-07ISEP shared services (status page, help centre, design system) may be reused, but they shall hold no COMSIP personal data.Should—
ISEP-08Tenant configuration (currency, locale, time zone, phone format, fiscal year, admin units District → TA → Village) shall be set per tenant, not hard-coded.MustR2 Annex 1
COMSIP Malawi on ISEP · SRS v1.04

04Functional requirements

4.1Member management

IDRequirementPrioritySource
MEM-01Register a member with full legal name, gender, date of birth, National ID (where available), district, TA, SLG/cooperative, mobile number, photo and digital consent.MustSDD 3.1 · A2 §2
MEM-02Validate National ID format on the device and at the server; store it encrypted at field level (AES-256).MustSDD 7.1
MEM-03Detect likely duplicates (National ID, phone, name + DOB + group) before saving, and block a confirmed duplicate.MustA2 §2(c)
MEM-04Capture socio-economic baseline and household demographics.MustA1 §2(a)
MEM-05Track lifecycle status: Pending → Verified → Active → Graduated / Exited, with reason and date.MustSDD 3.1
MEM-06District coordinator verifies new profiles; on activation the system generates a USSD PIN and sends it by SMS.MustSDD 5.1
MEM-07Keep a full change history of every profile edit (who, when, before, after).MustSDD 3.1

4.2Cluster & cooperative governance

IDRequirementPrioritySource
GOV-01Maintain registries of SLGs, clusters, primary cooperatives and union affiliation.MustA1 §2(b)
GOV-02Record leadership positions and tenure, committee structures and term expiry alerts.MustSDD 3.2
GOV-03Record meetings, attendance and minutes, with attachments.MustSDD 3.2
GOV-04Record share capital purchases per member and apply configurable dividend rules.MustSDD 3.2
GOV-05Run a graduation workflow from SLG to registered cooperative, with checklist and approval.MustSDD 3.2

4.3Savings

IDRequirementPrioritySource
SAV-01Record group savings and individual voluntary savings: deposits, withdrawals, running balances.MustA1 §2(d)
SAV-02Calculate and post interest per product rules; administer mandatory reserve funds.MustA1 §2(d)
SAV-03Accept deposits via Airtel Money and TNM Mpamba, and by manual entry with treasurer confirmation.MustA1 §2(i)
COMSIP Malawi on ISEP · SRS v1.05

4.4COMSIV microfinance

IDRequirementPrioritySource
MF-01Configure loan products (individual, group, cooperative, seed capital) with term, interest method, fees, penalties, grace period and limits.MustSDD 3.3
MF-02Accept loan applications from the web portal, the Android app (field officer) and USSD (member-initiated).MustSDD 5.2
MF-03Score applications automatically using savings velocity, repayment history and group audit performance; show the factors to the officer.MustA1 §2(c)
MF-04Route approvals by amount thresholds (officer → committee → manager → CEO), configurable by Finance.MustSDD 5.2
MF-05Disburse via bank gateway or mobile money; generate the repayment schedule at disbursement.MustSDD 5.2
MF-06Accrue interest and penalties daily; track repayments from mobile money or manual entry.MustSDD 3.3
MF-07Calculate PAR 1/30/60/90 and raise delinquency alerts to officers and coordinators.MustA1 §2(c)
MF-08Loans are denominated in MWK. USD-denominated loans are out of scope unless added by CR.MustA1 §2(h)

4.5SSRLP & livelihood programmes

IDRequirementPrioritySource
SSR-01Register beneficiaries and verify eligibility automatically against configurable programme criteria.MustSDD 3.4
SSR-02Allocate and track seed capital, grants and agricultural inputs per beneficiary.MustA1 §2(e)
SSR-03Record service delivery milestones and household economic impact over time.MustSDD 3.4
SSR-04Record donor inflows in their original currency (often USD) and post to the MWK ledger at the booked rate (see §5).MustA1 §2(h)

4.6Audit, compliance & M&E

IDRequirementPrioritySource
AUD-01Provide tablet-friendly digital audit checklists that work offline.MustA1 §2(f)
AUD-02Compute risk scores and institutional health ratings; keep compliance history per group.MustSDD 3.5
AUD-03Let M&E staff build data collection forms without code.ShouldSDD 3.5

4.7Reporting & analytics

IDRequirementPrioritySource
RPT-01Dashboards disaggregated by district, TA, gender, age and vulnerability, meeting World Bank reporting formats.MustA1 §2(g)
RPT-02Every financial report can be shown in MWK or USD; USD views state the rate basis used (see FX-09).MustA1 §2(h)
RPT-03Export to CSV, XLSX and PDF.MustSDD 3.5
COMSIP Malawi on ISEP · SRS v1.06

4.8Channels

IDRequirementPrioritySource
WEB-01Responsive web portal with role-specific home screens for executives, underwriting, programmes and reports.MustA1 §2(k)
AND-01Android app supports full offline registration, repayment capture and audits, stored in an encrypted local database.MustA1 §2(l)
AND-02Show "last synced" time and pending upload count at all times.MustSDD 6.1
SYN-01Two-way delta sync in the background, with checksums, retry queue and timestamped actions.MustSDD 3.7
SYN-02Resolve conflicts by documented rules per entity; financial records are never overwritten silently — they're flagged for review.MustSDD 5.3
SYN-03Field devices cache the current approved FX rate so offline screens can show USD equivalents; the server re-checks on sync.ShouldNew
USSD-01USSD menus in English and Chichewa: savings balance, loan status, mini-statement, loan application, service request. PIN on every session.MustA1 §2(m)
USSD-02USSD amounts are shown in MWK only, to fit the 160-character limit.MustSDD 6.2

4.9Access control & audit trail

IDRequirementPrioritySource
SEC-01Role-based access with data scope by national, district, cooperative or self.MustA1 §2(j)
SEC-02Multi-factor authentication for admin, finance and HQ executive roles.MustSDD 7.2
SEC-03Tamper-evident logs of logins, failed attempts, profile edits, loan approvals, disbursements, deletions and FX rate changes — with user ID, timestamp and IP.MustA5 §1(c)

4.10Billing meters

The Agreement charges USD 10.00 per registered member and 1.00% on project funding transactions, invoiced monthly in USD or MWK (Agreement §10).

IDRequirementPrioritySource
BIL-01Count chargeable members per month using the Annex 2 §2 rules (committed, mandatory fields complete, unique).MustA2 §2
BIL-02Meter project funding transactions (seed capital, grants, revolving funds) once at ledger allocation; exclude loan repayments, savings deposits, internal transfers and error reversals.MustA2 §3
BIL-03Produce the monthly Platform Billing Audit Report within 5 business days of month end.MustA2 §4
BIL-04Where COMSIP pays in MWK, convert the USD invoice using the reference bank's selling rate on the invoice date and print it on the invoice.Must§10.6
COMSIP Malawi on ISEP · SRS v1.07

05Currency engine (MWK ⇄ USD)

COMSIP runs its books in Kwacha, but donors fund and report in dollars and Waltergates invoices in dollars. The engine keeps one source of truth in MWK, keeps the original amount and rate on every foreign-currency transaction, and lets users convert and report in USD without changing the books.

5.1Principles

5.2Requirements

IDRequirementPrioritySource
FX-01Support MWK (default) and USD as ledger currencies; further currencies can be added by configuration.MustA1 §2(h)
FX-02Keep a rate table with date, source, buying, mid and selling rate, status (draft / approved / superseded), maker and checker.MustNew
FX-03Finance staff enter rates (maker); the Finance Manager approves them (checker). The same user cannot do both.MustA5 §1
FX-04Optionally import daily rates automatically from the reference bank or Reserve Bank of Malawi feed; imported rates still need approval.Could · CRNew
FX-05Block posting of USD transactions when there is no approved rate for the value date; warn when the rate is older than 2 business days.MustNew
FX-06On posting a USD transaction, store original amount, currency, rate ID, rate value, rate type and the MWK amount.MustNew
FX-07Provide a converter (web and Android) for MWK ⇄ USD in both directions with a choice of buying, mid or selling rate. It's for information only and posts nothing.MustR4
FX-08Provide a display-currency switch (MWK / USD) on dashboards and reports. Switching never changes stored values.MustR4
FX-09Reports in USD offer two bases: historical (each line at its booked rate) and closing (all balances at the period-end mid rate). The basis is printed in the report footer.MustNew
FX-10Calculate realised and unrealised FX gains/losses on USD-held programme funds at month end and post them to configured GL accounts.Should · CRNew
FX-11Log every rate entry, approval, override and correction in the audit trail (SEC-03). Approved rates can't be edited — only superseded.MustA5 §1(c)

5.3Calculation rules

RuleDefinition
Rate expressionMWK per 1 USD, stored with 6 decimal places.
MWK → USDusd = round(mwk ÷ rate, 2)
USD → MWKmwk = round(usd × rate, 2)
RoundingBanker's rounding (half-even) to 2 decimals in both currencies; use decimal arithmetic, never floating point.
Default rate typeDonor inflows: buying rate (what COMSIP receives). Payments out in USD: selling rate. Reporting and the converter default: mid.
Worked example — SSRLP grant of US$ 40,000.00 received 03 Oct 2026 Approved rate FX-2026-10-03-01 · buying 1,734.000000 MWK posted = 40,000.00 × 1,734.000000 = MK 69,360,000.00 Stored : orig 40,000.00 USD · rate_id FX-2026-10-03-01 · type BUY · mwk 69,360,000.00 1% fee meter : MK 693,600.00 (BIL-02 — inbound allocation, charged once)

Rates shown are illustrative; live rates come from COMSIP's approved rate table.

COMSIP Malawi on ISEP · SRS v1.08

06External interfaces

InterfacePurposeNotes
Airtel Money, TNM MpambaCollections and disbursementsWebhook callbacks; idempotency key per transaction
COMSIP commercial bank gatewayBank disbursements and settlementCredentials by M3; merchant fees are COMSIP's (A1 §6)
USSD / SMS aggregator (e.g. Africa's Talking)Member USSD sessions; PIN and alert SMSShort code acquired by COMSIP
FX rate sourceDaily reference ratesManual entry at Go-Live; automated feed via FX-04 (CR)
ISEP shellCountry routing and brandingNo personal data crosses this boundary

07Non-functional requirements

IDRequirementSource
NFR-01Monthly availability of 99.5%, excluding scheduled maintenance (22:00–04:00 CAT, 48 h notice for >30 min).§12.2, 12.5
NFR-02Daily incremental and weekly full backups, AES-256, off-site replica, 30-day retention. RPO ≤ 24 h, RTO ≤ 48 h.§12.3–12.4
NFR-03TLS for all traffic; AES-256 at rest for IDs, banking data, passwords, biometrics; Bcrypt password hashing.A5 §1(a)
NFR-04Quarterly penetration tests; continuous vulnerability scanning; breach notice to COMSIP within 72 h.A5 §1(d) · §13.4
NFR-05Web pages load in under 3 s on 3G for 95% of requests; API p95 under 800 ms; USSD response under 2 s.SDD 13
NFR-06Scale to at least 250,000 members and 50 concurrent sync batches without degrading NFR-05.SDD 13
NFR-07All user-facing text available in English and Chichewa; dates DD MMM YYYY; amounts with currency code or symbol.A1 §2(m)
NFR-08On exit: full SQL and CSV export within 30 days, then NIST SP 800-88 deletion.A5 §2
NFR-09Support: helpdesk 08:30–17:30 CAT business days; Severity 1 response within 2 business hours, resolution within 2 business days.A3

08Data requirements

EntityKey fields
Membermember_id, national_id (enc), names, gender, dob, phone, district, ta, village, group_id, status, consent_at
Group / Cooperativegroup_id, type (SLG / cluster / coop), district, ta, registered_on, leaders[], share_capital
Loanloan_id, product_id, borrower (member / group), principal_mwk, rate, schedule[], status, par_days
Ledger entryentry_id, account, amount_mwk, orig_amount, orig_ccy, fx_rate_id, fx_rate, fx_type, value_date, posted_by
FX ratefx_rate_id, date, base USD, quote MWK, buy, mid, sell, source, status, maker_id, checker_id, approved_at
Programme allocationalloc_id, programme, beneficiary_id, asset_type, amount_mwk, orig_ccy, fee_metered
COMSIP Malawi on ISEP · SRS v1.09

09Acceptance & traceability

UAT runs in the staging environment with anonymised data. COMSIP has 10 business days per handover. A module is accepted with zero open Material Defects (Annex 4).

MilestoneWindowRequirements covered
M1 Kickoff & governance≤ 10 BD—
M2 Requirements confirmation≤ 30 BDSign-off of this SRS
M3 Core customisation≤ 75 BDISEP-01–08, MEM, GOV, SAV, MF, SSR, FX-01–09, FX-11, AND, SYN, USSD
M4 Staging & UAT handover≤ 90 BDAll Must items deployed to staging
M5 UAT sign-off≤ 110 BDTest scenarios incl. FX worked example, tenant isolation test
M6 Training≤ 120 BD2 admin + 4 TOT sessions, incl. FX rate maker-checker
M7 Go-Live≤ 130 BDMigration cutover, gateways live, BIL meters on
M8 Stabilisation+90 daysShould items; RPT, AUD-03, SYN-03

9.1Key acceptance tests

10Open issues & assumptions

#ItemOwner
OI-1Name the reference commercial bank for FX rates and invoice conversion.COMSIP Finance
OI-2Confirm whether FX-04 (automatic rate feed) and FX-10 (FX gain/loss) are wanted — both need a Change Request.COMSIP / WGL
OI-3Confirm URL pattern for the Malawi tenant (sub-path or sub-domain).WGL
OI-4Confirm data residency choice (South Africa region) and MACRA transfer approach.COMSIP Legal
OI-5Provide Chichewa translations review panel for USSD and app text.COMSIP

11Approval

Signing below confirms this SRS as the Approved Requirements Specification for Milestone M2.

For Waltergates Ghana Limited
Name: ______________________
Title: ______________________
Signature & date: ____________
For COMSIP Cooperative Union Limited
Name: ______________________
Title: ______________________
Signature & date: ____________
COMSIP Malawi on ISEP · SRS v1.010