Kora Digital Banking
Kora Digital Banking is a white-label banking platform that lets you launch a fully branded digital bank. It provides account management, domestic and international transfers, loans, five savings products, bill payments, and real-time notifications — all behind a single multi-tenant API.
What You Can Do
- Accounts & Wallets — Create and manage multi-currency wallets (NGN, USD, GBP) with per-user daily and monthly limits.
- Transfers — Move money internally, across Nigerian banks via NIBSS NIP, or internationally via SWIFT.
- Loans — Offer six loan products (quick cash, personal, salary advance, mortgage, asset finance, business) with a multi-level approval workflow.
- Savings — Five savings products: flexible, target, locked, group, and save-as-you-transact (SAYT).
- Bill Payments — Airtime, data, electricity, cable TV, insurance, and more via the Interswitch Quickteller network.
- KYC & Identity — Three-tier KYC with document verification, identity checks, and admin review queues.
- Fraud Detection — AI-powered transaction risk scoring with device, location, and behavioral analysis.
- Multi-Tenancy — Isolated tenant schemas, branded themes, and per-tenant feature flags from a single deployment.
How It Works
┌──────────┐ ┌────────────────────┐ ┌──────────────────┐
│ Mobile │────▶│ │────▶│ PostgreSQL │
│ App │ │ Banking API │ │ (tenant schema) │
├──────────┤ │ (Express.js) │ └──────────────────┘
│ Web App │────▶│ │────▶┌──────────────────┐
├──────────┤ │ /api/v1/accounts │ │ NIBSS / ISW │
│ Admin │────▶│ /api/v1/transfers │ │ (transfers, │
│ Portal │ │ /api/v1/loans │ │ bill payments) │
└──────────┘ │ /api/v1/savings │ └──────────────────┘
│ /api/v1/bills │
└────────────────────┘
Every request includes an Authorization header (JWT) and an X-Tenant-ID header. The API resolves the tenant, applies row-level security, and routes the request to the correct schema.
Quick Example
- cURL
- Node.js
- Python
- Go
curl https://api.korastratum.com/api/v1/banking/accounts \
-H "Authorization: Bearer eyJ0eXAi..." \
-H "X-Tenant-ID: fmfb"
const res = await fetch("https://api.korastratum.com/api/v1/banking/accounts", {
headers: {
Authorization: "Bearer eyJ0eXAi...",
"X-Tenant-ID": "fmfb",
},
});
const { data } = await res.json();
import requests
res = requests.get(
"https://api.korastratum.com/api/v1/banking/accounts",
headers={
"Authorization": "Bearer eyJ0eXAi...",
"X-Tenant-ID": "fmfb",
},
)
data = res.json()["data"]
req, _ := http.NewRequest("GET", "https://api.korastratum.com/api/v1/banking/accounts", nil)
req.Header.Set("Authorization", "Bearer eyJ0eXAi...")
req.Header.Set("X-Tenant-ID", "fmfb")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Next Steps
- Quickstart — Authenticate and make your first transfer in 5 minutes.
- Authentication — JWT tokens, 2FA, and session management.
- Multi-Tenancy — How tenant isolation works.
- API Reference — Base URL, headers, and response format.