Open Source · MIT License

The open-source
payment stack
for Africa

Not just an SDK — a complete payment infrastructure you can self-host. The server, dashboard, and webhook engine that used to take 18 months to build.

Terminal
$ npm install @zirzir/sdk
app.ts
import { Zirzir } from '@zirzir/sdk'

const zirzir = new Zirzir({
  provider: 'chapa',
  credentials: { secretKey: process.env.CHAPA_KEY }
})

const tx = await zirzir.charge({
  amount: 500,
  currency: 'ETB',
  txRef: 'order_123',
  email: '[email protected]'
})

// Redirect to tx.paymentUrl

Every company solves these problems independently. Expensively. Repeatedly.

That's what Zirzir replaces.

Fragmented gateways

Every African country has different payment providers. Telebirr in Ethiopia, M-Pesa in Kenya, each with unique APIs, auth flows, and settlement quirks.

Repeated infrastructure

Webhook retries, transaction databases, dashboards, credential management, multi-environment support. Everyone builds the same plumbing.

Months before first payment

Provider approvals, API integration, testing sandboxes that don't match production. A funded fintech takes 18 months to build what should take a week.

Three layers. One stack.

Use just the SDK for direct gateway access, add the server for full payment operations, or let us host it.

Open Source, MIT License

One unified interface for every African payment gateway. TypeScript, Python, and Go. Use standalone or connect to a Zirzir server.

  • Single charge/verify/refund API
  • TypeScript, Python, Go SDKs
  • Standalone or Server mode
  • Built-in provider adapters
  • Webhook signature verification
  • Full type safety
app.ts
import { Zirzir } from '@zirzir/sdk'

const zirzir = new Zirzir({
  provider: 'chapa',
  credentials: { secretKey: '...' }
})

const tx = await zirzir.charge({
  amount: 500,
  currency: 'ETB',
  txRef: 'order_123',
})

One API. Two modes.

Start standalone for quick prototyping — call gateways directly with zero infrastructure. Switch to server mode when you need webhook retries, a transaction ledger, and a dashboard.

Same charge(), same verify(), same refund(). Just change the config.

standalone.ts
import { Zirzir } from '@zirzir/sdk'

// Talk directly to the payment gateway
const zirzir = new Zirzir({
  provider: 'chapa',
  credentials: { secretKey: process.env.CHAPA_KEY! }
})

const tx = await zirzir.charge({
  amount: 500,
  currency: 'ETB',
  txRef: 'order_123',
  email: '[email protected]'
})

Every gateway. One integration.

From Telebirr to M-Pesa, normalize every provider into a single Transaction object. Add a new country in minutes, not months.

Telebirr

stable

Ethiopia

Mobile Money

Chapa

stable

Ethiopia

Payment Gateway

CBEBirr

stable

Ethiopia

Mobile Money

Santim Pay

stable

Ethiopia

Mobile Money

Awash Bank

stable

Ethiopia

Bank Transfer

EthSwitch

stable

Ethiopia

Interbank

M-Pesa

beta

Kenya

Mobile Money

Airtel Money

beta

East Africa

Mobile Money

Coming soon

Paystack Flutterwave MTN MoMo Orange Money

Built for builders

Whether you're a solo developer or an enterprise, Zirzir adapts to your scale.

Startups

Stop building payment infrastructure before shipping your product. Go from zero to accepting payments in an afternoon.

Agencies

One Zirzir server, multiple isolated client projects. Each with their own credentials, environments, and API keys.

Platforms

Split payments, multi-party payouts, reconciliation across providers. Built for marketplaces and SaaS platforms.

Developers

Explore African fintech with a sandbox that works day one. No approvals, no contracts, just code.

Open Core, Not Open Bait

Same model as Supabase, Plausible, and Gitea. The SDK and server are fully open source under MIT. Zirzir Cloud is how we fund development — but you never need it.

You can run the entire stack yourself. Fork it, modify it, deploy it. No vendor lock-in, no surprise pricing changes, no data hostage situations.

View Source on GitHub
Zirzir Proprietary
Source code Fully open (MIT) Proprietary
Self-hosting Yes, Docker + Go binary No
Provider lock-in None Platform-dependent
Pricing Free (self-host) or pay for Cloud % per transaction
African gateways Native, first-class Limited or none
USSD flows First-class support Afterthought

Ready to ship payments?

Install the SDK, point it at a gateway, and charge your first customer. No approvals needed for sandbox.

$ npm install @zirzir/sdk