RSS / rss-next — Regulatory Returns Framework
A config-driven framework that lets banks define, generate, and submit regulatory returns — new return = new config, not code. In production across Ghana and South Africa.
- Spring Boot 3.5
- Java 21
- React / TanStack
- XBRL
- OpenShift
What it is
RSS automates statistical returns generation and submission to the Bank of Ghana for banks and financial institutions. Live since 2019 (originated at my prior startup, Excenit; now under Cape Wesley), deployed to production including air-gapped bank sites.
Deployed client base
The proof the multi-tenant, multi-jurisdiction design works is that it runs in production for real institutions across two countries:
- Fidelity Bank (Ghana)
- Izwe Savings & Loans (South Africa & Ghana)
- ASA International
- Sinapi Aba Savings & Loans
- Adehyeman Savings & Loans
- Ghana Revenue Authority Co-operative Credit Union
rss-next — the brilliantly simple core
After years of pain with the code-first predecessor, the architecture I settled
on is configuration-driven. A regulator's Excel template is scanned once into
a JSON TemplateConfig — the single source of truth — and a generic engine
drives everything downstream: validation, mapping, generation, and submission.
- New regulator or return = new config, not code. No per-return Java, no rebuild, no redeploy.
- Pluggable data sources — GL balance, warehouse field, XBRL fact, constant, formula — resolved by a strategy registry with no engine branching (add a source type = one class).
- Two-pass execution — non-formula cells first, then formulas that reference them, Excel-style.
- CBS-agnostic — XBRL is the connecting channel; core-banking systems (FlexCube, T24, CWC Banking) emit XBRL to the framework rather than the framework reaching into each one. Adding a core-banking system is a stored proc + an emitter config, not a Java class. Proven at exact cell parity against the legacy platform.
Delivery
Spring Boot 3.5 / Java 21 with a React/TanStack front end; maker-checker submission workflow; one 12-factor config deploys to Docker, Podman, and OpenShift; air-gap-capable; per-tenant connection isolation.