Introduction
Introduction to NovaBilling
NovaBilling is a multi-tenant billing infrastructure API built for businesses operating across Africa. It provides a complete set of tools for managing customers, subscription plans, invoices, and payments with native support for African payment providers.
What is NovaBilling?
NovaBilling abstracts away the complexity of integrating with multiple payment providers across different markets. Instead of building and maintaining separate integrations with Stripe, Flutterwave, Paystack, and M-Pesa, you connect once to NovaBilling and gain access to all of them through a unified API.
Whether you are building a SaaS product, a marketplace, or any application that requires recurring billing, NovaBilling provides the infrastructure you need to collect payments reliably across the continent.
Key Features
- Multi-Tenant Architecture -- Each tenant operates in complete isolation with its own dedicated database, ensuring data security and compliance.
- Multiple Payment Providers -- Native integrations with Stripe, Flutterwave, Paystack, and M-Pesa with a unified API interface.
- Subscription Management -- Full subscription lifecycle management including trials, plan changes, pausing, and cancellation.
- Invoice Generation -- Automated invoice creation with PDF generation and multi-currency support.
- Analytics Dashboard -- Revenue, subscription, and customer analytics accessible via API.
- Webhooks -- Real-time event notifications for all billing events.
- Official SDKs -- TypeScript and Python SDKs for type-safe API access.
- Interactive API Reference -- Full API documentation available at
/api/reference.
Architecture Overview
NovaBilling follows a multi-tenant architecture where each tenant receives a completely isolated database. This design ensures:
- Data Isolation -- No tenant can access another tenant's data, even in the event of a software bug.
- Independent Scaling -- Each tenant's database can be scaled independently based on their usage patterns.
- Regulatory Compliance -- Data residency requirements can be met by provisioning tenant databases in specific regions.
┌─────────────────────────────────────────────────┐
│ NovaBilling API │
├─────────────────────────────────────────────────┤
│ Authentication Layer │
│ (JWT for tenants, API Keys for data) │
├──────────┬──────────┬──────────┬────────────────┤
│ Tenant A │ Tenant B │ Tenant C │ Tenant ... │
│ DB │ DB │ DB │ DB │
└──────────┴──────────┴──────────┴────────────────┘
│ │ │
┌────┴────┐ ┌────┴────┐ ┌───┴─────┐ ┌───┴─────┐
│ Stripe │ │Flutterwave│ │ Paystack │ │ M-Pesa │
└─────────┘ └──────────┘ └─────────┘ └─────────┘
Authentication Model
NovaBilling uses a dual authentication model:
- JWT Tokens are used for tenant management operations such as registering, logging in, managing API keys, and updating tenant settings.
- API Keys are used for all data operations such as creating customers, managing subscriptions, and processing payments.
This separation ensures that tenant credentials and operational access are managed independently, reducing the blast radius if an API key is compromised.
Supported Payment Providers
| Provider | Countries | Payment Methods |
|---|---|---|
| Stripe | 195+ countries | Cards, Bank Transfers, Wallets (Apple Pay, Google Pay) |
| Flutterwave | Nigeria, Kenya, Ghana, South Africa, Uganda, Tanzania, Rwanda, and 30+ others | Card, Bank Transfer, Mobile Money, USSD |
| Paystack | Nigeria, Ghana, South Africa, Kenya | Card, Bank Transfer, USSD, Mobile Money, QR |
| M-Pesa | Kenya, Tanzania, Mozambique, DRC, Lesotho, Ghana, Egypt | Mobile Money |
Supported Currencies
NovaBilling supports the following currencies for plans, invoices, and payments:
| Code | Currency | Region |
|---|---|---|
| NGN | Nigerian Naira | Nigeria |
| KES | Kenyan Shilling | Kenya |
| GHS | Ghanaian Cedi | Ghana |
| ZAR | South African Rand | South Africa |
| UGX | Ugandan Shilling | Uganda |
| TZS | Tanzanian Shilling | Tanzania |
| RWF | Rwandan Franc | Rwanda |
| EGP | Egyptian Pound | Egypt |
| XOF | West African CFA Franc | West Africa |
| XAF | Central African CFA Franc | Central Africa |
| MAD | Moroccan Dirham | Morocco |
| ETB | Ethiopian Birr | Ethiopia |
| DZD | Algerian Dinar | Algeria |
| ZMW | Zambian Kwacha | Zambia |
| USD | US Dollar | International |
| EUR | Euro | International |
| GBP | British Pound | International |
Next Steps
- Follow the Quickstart Guide to make your first API call in minutes.
- Read about Authentication to understand how to secure your API access.
- Explore the TypeScript SDK or Python SDK for your preferred language.
- Browse the API Reference for a complete list of endpoints.