One API. Every payment provider.
Billing without borders.

PimaBill is open-source billing for the way Africa pays. Connect Stripe, Flutterwave, Paystack, Pesapal, MTN MoMo, Airtel Money and more through one API. Manage customers, subscriptions, invoices, payments, payouts and a double-entry ledger in any currency.

Why PimaBill?

Borderless by Default

Support 17 currencies across 40+ countries. Automatic currency matching routes payments to the right provider -- from mobile money in Nairobi to card payments in New York.

Multi-Tenant Architecture

Every tenant gets an isolated database with encrypted credentials. Built for SaaS platforms that need to offer billing to their own customers.

Ship in Minutes

Type-safe TypeScript and Python SDKs generated from our OpenAPI spec. Full autocomplete, comprehensive error handling, and always in sync with the API.

4 Payment Providers

Stripe and PayPal for global cards. Flutterwave and Paystack for West Africa. Pesapal, MTN MoMo and Airtel Money for East Africa. USDT and Bitcoin straight to your own wallet.

Smart Subscriptions

Free trials, plan upgrades, downgrades, pausing, resuming, and automated renewals. Proration and dunning handled automatically.

Invoices & Checkout

Auto-generate PDF invoices. Create hosted checkout URLs for any invoice. Email delivery on every billing event with automatic retries.

Revenue Analytics

Track revenue, subscriptions, churn, and payment success rates. Filter by date range, currency, and provider with daily, weekly, or monthly grouping.

Real-Time Webhooks

Signature-verified webhook notifications for every event -- payments, subscriptions, invoices. Automatic retries with exponential backoff.

Enterprise Security

AES-256 credential encryption, JWT + API key dual authentication, scoped permissions, and rate limiting out of the box.

Get Started in 60 Seconds

Install an SDK and create your first subscription.
npm install pimabill
import { PimaBillClient } from 'pimabill';

const pima = new PimaBillClient({
  token: process.env.PIMABILL_API_KEY!,
});

// Create a customer
const customer = await pima.customers.create({
  externalId: 'usr_001',
  email: 'amina@kampaltech.ug',
  name: 'Amina Nakato',
  currency: 'UGX',
});

// Subscribe them to a plan
const sub = await pima.subscriptions.create({
  customerId: customer.id,
  planId: 'plan_growth',
  currency: 'UGX',
});

console.log(sub.status); // "ACTIVE"
Ready to dive deeper? Follow the full Quickstart Guide for a complete walkthrough -- from registration to your first payment.

Supported Currencies

PimaBill supports 17 currencies across Africa and internationally.
RegionCurrencies
West AfricaNGN GHS XOF
East AfricaKES UGX TZS RWF ETB
North AfricaEGP MAD DZD
Central AfricaXAF
Southern AfricaZAR ZMW
InternationalUSD EUR GBP

Explore the Docs

Quickstart

Register, create API keys, configure a payment provider, and start billing in under 5 minutes.

Authentication

Understand JWT tokens for tenant management and API keys for data operations.

TypeScript SDK

Full reference for the PimaBillClient with type-safe methods for every resource.

Python SDK

Sync and async clients with comprehensive type hints and error handling.
Copyright © 2026