App Integration & Data Flows
The MFI Suite is not a bundle of separate products bolted together — it is one data model with one ledger. This page shows how the apps integrate: the architecture at a glance, the end-to-end flows as swimlanes, and a map of which app talks to which.
One platform, one data model
Channels feed the core; the member (CIF) is the spine every account hangs off; and every money movement converges on the General Ledger. Risk, regulatory and analytics read from the core and the ledger.
Integration map — who talks to whom
Each integration point is event-driven: a trigger in one app produces a defined effect in another.
| Source app | Talks to | Trigger | Effect |
|---|---|---|---|
| Members (CIF) | Savings · Loans · Shares · Cards | Account opened / member frozen | Every account references the member; a freeze or blacklist cascades to all products & channels |
| Savings | Accounting (GL) | Deposit · withdrawal · transfer · interest | Real-time balanced journal per transaction |
| Mobile Money | Savings | Validated Daraja / Airtel / MTN callback | Credits the member savings account; unmatched receipts go to a suspense queue |
| Loans | Payment rail | Disbursement approved | Triggers M-Pesa B2C or EFT payout |
| Loans | Accounting (GL) | Disbursement · accrual · repayment · write-off | Posts the matching double-entry journal |
| Loans | IFRS 9 ECL | Quarterly run | Active book feeds staging + ECL; result becomes the provisioning journal |
| IFRS 9 ECL | Accounting (GL) | Run committed | Provisioning journal (impairment) posted |
| Channels (USSD / WhatsApp / iBANK) | Savings · Loans | Member self-service | Balance, mini-statement, transfer, loan repayment, statements |
| All apps | Regulatory Pack | Monthly / quarterly returns | CBK / SASRA / BoU templates read across every module |
| All apps | Data Warehouse | Nightly export | Star-schema export for BI / analytics |
Flow 1 — Member onboarding & activation
From first capture to an active member with internet-banking access — KYC and the two-person rule sit in the middle.
Flow 2 — Mobile-money deposit
A member top-up via M-Pesa flows from the channel, through the validated Daraja callback, into savings, and posts to the ledger.
Flow 3 — Loan origination → disbursement
Application through disbursement, with credit scoring and dual-control approval; disbursement fans out to the payout rail and the ledger.
Flow 4 — Loan repayment & allocation
Repayments are allocated by waterfall, update the schedule, and post interest income + principal to the ledger.
Flow 5 — IFRS 9 provisioning at quarter-end
The ECL engine reads the live loan book, computes expected credit loss, posts the provisioning journal, and feeds regulatory returns.
Integration principles
- The member (CIF) is the spine. One customer record carries identity, KYC, contacts and consent; every savings account, loan, share and support case links back to it.
- Real-time, double-entry accounting. Every money event (teller, M-Pesa, loan, fee, write-off) posts a balanced journal the moment it happens — so the Trial Balance, P&L and Balance Sheet are always live.
- Soft-coupled modules. Each app guards cross-module calls, so modules can be licensed and installed independently (feature gates) without breaking.
- Idempotent, signed callbacks. Mobile-money callbacks are HMAC-verified and de-duplicated; a repeated callback never double-posts.
- Two-person rule & audit-immutable journals. Disbursements, large transfers and manual journals require dual control; posted journals cannot be edited or deleted.
- Country profile drives the rails. One config selects the regulator pack, rails (M-Pesa / Airtel / MTN / Pesalink), GL chart and channels per country.

