Olatunde Success on building Cirva, a cooperative savings (ajo/esusu) platform on NestJS with SafeHaven MFB virtual accounts, Paystack direct debit, and tiered KYC, without breaking the social trust that makes ajo work.
Ajo (or esusu) is Nigeria’s original fintech: a rotating savings group where members contribute on a schedule and take turns collecting the pot. It runs on social trust and a notebook. Cirva, which I lead engineering for at SAW Technologies, digitizes that tradition. The hardest part was not the technology; it was digitizing the trust without flattening it.
Every group gets a real account
Each Cirva group is backed by a NUBAN virtual account provisioned through SafeHaven MFB, so contributions are ordinary bank transfers with no new habit to learn. Direct-debit mandates through Paystack automate the contribution schedule, and Sudo Africa card issuing gives collectors a spend channel. The member experience is ajo as they know it; the ledger underneath is bank-grade.
Tiered KYC matches Nigerian reality
Not every market woman saving ₦2,000 a week has a passport. Cirva uses tiered KYC: lighter verification with lower limits, stepping up through BVN and NIN verification via Prembly as limits rise. Those identifiers are stored with AES-256-GCM field-level encryption, and pooled-account compliance controls keep group funds legible to regulators without exposing member data.
The engineering shape
A NestJS monorepo shares domain logic between API, workers, and admin surfaces.
BullMQ schedules the savings cycles: contribution reminders, collection rotations, mandate retries.
Socket.IO pushes group activity in real time, because ajo is social before it is financial.
React Native carries the member experience, built for low-end Android devices first.
Ajo survived every banking era Nigeria has had because it fits how people actually save. The job of software here is to add safety and scale, with idempotent money movement, encrypted identity, and auditable pots, while staying invisible enough that the tradition still feels like itself.


