Skip to main content

PORTFOLIO

Digital Banking & Core Systems

A multi-tenant banking middleware serving four licensed microfinance banks from one codebase, a core banking ledger, and the customer channels that sit on top of them.

One Platform, Four Banks

Nigerian microfinance banks face a problem the tier-one banks solved a decade ago with budgets they do not have. They hold a core banking licence and a core banking system, but no practical way to put a modern application in a customer’s hand. Buying a channel platform per bank is unaffordable, and building one per bank is worse.

Our answer was a single multi-tenant middleware that fronts the core banking system and serves every channel a bank needs. Each bank gets complete isolation — its own database, its own secrets, its own branded portal and its own NIBSS institution code — while sharing one codebase, one deployment pipeline and one security posture. Onboarding a new bank is a registry row and a portal package, not a project.

Every state-changing operation is written to an append-only, hash-chained audit log, because a bank that cannot reconstruct what happened cannot answer its examiner. Customer onboarding implements the Central Bank of Nigeria tiered know-your-customer model, with the NIBSS and NIMC interfaces for bank verification and national identity numbers.

Systems in this domain

Seven systems, four of which are in daily service at licensed banks.

NCube Banking Middleware

Platform · multi-tenant

The layer between bank channels and the NCube core. Handles tiered KYC, account services, intra-bank and NIP inter-bank transfers with name enquiry, loan products with amortisation and loss classification, HMAC-signed outbound webhooks with retry and dead-letter handling, and a hash-chained audit log. Database-per-tenant isolation behind a shared control plane.

CBA Core Banking Application

Core ledger

A microfinance core banking system with a real double-entry ledger. Customers, accounts, postings, loans and deposits are held here rather than summarised from elsewhere, which is what makes the trial balance mean anything.

Ultra Pay Microfinance Bank

Mobile + internet banking

Mobile banking in Flutter and a full internet banking platform. Customers register as individuals or businesses, complete KYC against national identity and corporate registration records, have a real account opened on the core system, then transfer, buy airtime and data, manage beneficiaries and download statements.

Tudun Wada Microfinance Bank

Mobile + internet banking

The Stark App mobile banking client and its matching internet banking platform, running on the shared middleware against the bank’s own core and its own NIBSS institution code.

Kura Microfinance Bank

Mobile banking

Flutter mobile banking on the NCube core through a middleware proxy. Accounts and balances, intra- and inter-bank transfers with name enquiry, statements, airtime, transaction PIN and identity verification.

Quantum Microfinance Bank

Digital banking + corporate web

A CBN-licensed bank running on the shared middleware, with a corporate website delivered to the bank’s own technical specification and brand guidelines, built on Drupal 11 with a fully custom theme.

Channel Proxy Middleware

Integration

A second middleware placing two upstream systems behind one self-hosted backend, so applications authenticate once and no upstream credential ever leaves the server.

Technical detail

What each system is built on and what it connects to.

System Stack Integrates with
NCube Banking Middleware Node.js HTTP service and worker, Postgres, database-per-tenant NCube core, NIBSS NIP, NIMC, bank portals
CBA Core Banking Next.js, TypeScript, Supabase Postgres, Docker Double-entry ledger, loan and deposit products
Ultra Pay Flutter and React Native Expo clients, Next.js internet banking NCube via middleware, Flutterwave for value-added services
Tudun Wada (Stark App) Flutter with provider, Supabase, Next.js internet banking NCube via middleware, NIBSS code 51166
Kura MFB Flutter with Riverpod and go_router NCube via middleware proxy
Quantum MFB Drupal 11 custom theme, Next.js build NCube via middleware, NIBSS code 50777
Channel Proxy Middleware TypeScript and Python workers, self-hosted Supabase Two upstream cores behind one authenticated surface

Regulatory posture

The middleware implements CBN tiered KYC, retains an append-only hash-chained audit trail of every state change, and isolates each bank at the database level. These are design decisions taken to survive examination, not features added afterwards.

Running a microfinance bank without a digital channel?

If you hold a core banking licence and a core banking system but no application your customers can use, the platform described above was built for exactly that position. Adding a bank is a configuration exercise.