What is FWallet?
FWallet is multi-tenant financial wallet infrastructure built for companies operating in emerging markets where money movement spans mobile money (MoMo), banks, and cash-assisted branch operations.
It is a backend API that gives you everything you need to manage wallets, move money, and maintain a provably correct financial ledger — out of the box.
Who is FWallet for?
- Enterprise developers building payment or wallet features into existing products
- B2B integrators connecting mobile money providers, banks, and cash operations into a single platform
- Fintech product teams launching wallet products in East Africa (Uganda, Kenya, Tanzania) and beyond
Core Capabilities
Wallet Management
Create and manage wallets for users, branches, and companies. Each wallet is single-currency and backed by a double-entry ledger account, so balances are always provably correct.
Deposits
Accept funds via mobile money webhooks (auto-credited on signature verification) or bank slip verification (branch manager confirms against imported bank statements). Both flows are idempotent and produce immutable ledger entries.
Transfers
Move money between wallets with automatic fee calculation. Every transfer posts balanced debit/credit lines to the ledger. Transfers require an Idempotency-Key header to prevent duplicates.
Configurable Fee Engine
Define fee schedules per tenant with percentage and flat components, min/max bounds, and per-currency overrides. Fees are calculated and posted as ledger entries alongside the transfer they belong to.
Double-Entry Append-Only Ledger
Every money movement — deposit, transfer, payout, fee — is recorded as a journal entry with balanced debit and credit lines. Entries are never mutated or deleted. Corrections are posted as reversing entries. This gives you an immutable audit trail suitable for regulatory compliance.
Multi-Currency Support
FWallet supports multiple currencies with correct decimal handling:
| Currency | Code | Decimals | Smallest Unit |
|---|---|---|---|
| Ugandan Shilling | UGX | 0 | 1 UGX |
| Kenyan Shilling | KES | 2 | 0.01 KES |
| Tanzanian Shilling | TSH | 0 | 1 TSH |
| US Dollar | USD | 2 | 0.01 USD |
| Chinese Yuan | CNY | 2 | 0.01 CNY |
| British Pound | GBP | 2 | 0.01 GBP |
All amounts are stored as integers in the smallest currency unit (e.g., 50,000 UGX is stored as 50000, $100.00 USD is stored as 10000). The API never uses floating-point arithmetic on money.
White-Label / Resale Model
Each tenant (organization) is fully isolated with its own wallets, ledger, fee schedules, approval policies, and transaction limits. You can run FWallet as a platform and onboard multiple businesses, each with their own configuration.
Enterprise Operations
Super admins can create organizations, invite tenant admins, switch across tenants in the admin dashboard, configure platform fee schedules, and review cross-tenant analytics. Tenant owners can manage their own developers, team roles, fee schedules, approvals, treasury balances, float deposits, fee withdrawals, and reconciliation workflows.
The public demo surfaces these controls in two dashboards:
- Super-admin dashboard:
https://admin.fwallet.co.ug - Tenant dashboard:
https://demo.fwallet.co.ug
For the end-to-end operating model, see Enterprise Workflows.
Architecture at a Glance
FWallet is a Bun monorepo with these packages:
@fwallet/api— Hono API server with OpenAPI-typed routes and Scalar interactive docs@fwallet/db— Drizzle ORM schema, migrations, and database client (PostgreSQL)@fwallet/shared— Shared Zod schemas, error types, and money utilities
Every API endpoint is fully typed from request validation (Zod) through to the OpenAPI spec, which means client SDKs can be auto-generated from the schema.
Sample Application
Striker Market is a complete sample betting-house application that uses FWallet as a tenant-owned wallet backend. It demonstrates signed server-to-server calls, user wallet flows, operator controls, owner analytics, payout decisions, request logs, and observer monitoring. Read the Striker Market case study for architecture, environment variables, API calls, and demo steps.
Next Steps
Ready to start? Head to the Quick Start guide to make your first API call in under 5 minutes, then follow Enterprise Workflows to configure the full demo.