Nkap — A Unified Payment SDK for African Developers
The Problem
Mobile money is the backbone of digital payments across Africa. With over 780 million registered mobile money accounts on the continent (GSMA, 2023), services like MTN Mobile Money, Orange Money, Wave, and Moov have become the primary financial tools for hundreds of millions of people. Yet for a developer in Cameroon, Senegal, Côte d'Ivoire, or Nigeria, integrating even two of these payment providers into a single app is a painful, repetitive, and time-consuming experience.
Each aggregator ships its own API, its own authentication model, its own webhook format, its own error codes, and its own SDK — when it even ships one at all. A fintech team building a product that targets users in francophone West Africa and Central Africa today has to read five different docs, maintain five different integration layers, and debug five different failure modes. That cost is not theoretical — it is one of the real reasons African startups move slower than they should on payments.
What Nkap Is
Nkap (the word for money in Cameroonian Pidgin) is an open-source, unified payment SDK that gives African developers a single, consistent interface to work with the most widely used payment aggregators and mobile money operators on the continent.
Instead of learning each provider's quirks individually, a developer calls one SDK, configures their credentials, and gets a normalized API for:
- Initiating payments
- Checking transaction status
- Handling webhooks
- Processing refunds
— regardless of whether the underlying provider is MTN MoMo, Orange Money, Wave, CinetPay, Monetbil, PayDunya, or others.
Why Rust
The choice of Rust is deliberate and practical. Rust compiles to native binaries with no runtime dependency, which means the core logic can be compiled once and exposed to virtually any programming language through FFI (Foreign Function Interface). This directly serves the African developer ecosystem, where language fragmentation is real — teams building with PHP, Python, JavaScript/Node.js, Dart (Flutter), Kotlin, and Swift all deserve first-class support without the SDK team having to rewrite everything six times.
Rust also brings:
- Memory safety without a garbage collector
- Predictable performance under load
- Strong async support through Tokio
All of which matter when you are handling financial transactions where reliability is non-negotiable. Projects like Mozilla, Cloudflare, and the Linux kernel have already validated Rust for systems-level work at scale.
The Broader Context
Africa's payment landscape is fragmented by design — operators are country-specific, regulatory environments differ, and API standardization is largely absent. Organizations like the GSMA and the African Union have pushed for interoperability frameworks, but at the developer level, the tooling has not caught up.
Nkap is not trying to replace aggregators or become a financial intermediary. It sits cleanly at the developer tooling layer — the same way Stripe's libraries abstract card networks, Nkap abstracts African payment rails.
The goal is simple: a developer should be able to go from zero to a working payment integration in under an hour, in the language they already know.
Resources and Prior Art
| Resource |
Description |
| GSMA Mobile Money API |
The closest thing to a standard that exists today, adopted partially by some operators |
| MTN MoMo Developer Portal |
One of the most mature provider APIs, but still complex to work with |
| CinetPay |
Popular aggregator in francophone Africa with a REST API |
| PayDunya |
Widely used in West Africa, supports multiple payment methods |
| Monetbil |
Widely used in Central Africa, especially Cameroon |
| UniFFI by Mozilla |
The toolchain that makes exposing Rust to Kotlin, Swift, and Python realistic without manual binding work |
Who This Is For
Nkap is for the developer in Douala building a delivery app, the team in Dakar launching a savings product, and the startup in Abidjan that just needs payments to work — without spending weeks on integration before they can ship.
Relevant Technology
Rust, FFI, API design, Cross language interoperability
Complexity
Required time
Categories
Nkap — A Unified Payment SDK for African Developers
The Problem
Mobile money is the backbone of digital payments across Africa. With over 780 million registered mobile money accounts on the continent (GSMA, 2023), services like MTN Mobile Money, Orange Money, Wave, and Moov have become the primary financial tools for hundreds of millions of people. Yet for a developer in Cameroon, Senegal, Côte d'Ivoire, or Nigeria, integrating even two of these payment providers into a single app is a painful, repetitive, and time-consuming experience.
Each aggregator ships its own API, its own authentication model, its own webhook format, its own error codes, and its own SDK — when it even ships one at all. A fintech team building a product that targets users in francophone West Africa and Central Africa today has to read five different docs, maintain five different integration layers, and debug five different failure modes. That cost is not theoretical — it is one of the real reasons African startups move slower than they should on payments.
What Nkap Is
Nkap (the word for money in Cameroonian Pidgin) is an open-source, unified payment SDK that gives African developers a single, consistent interface to work with the most widely used payment aggregators and mobile money operators on the continent.
Instead of learning each provider's quirks individually, a developer calls one SDK, configures their credentials, and gets a normalized API for:
— regardless of whether the underlying provider is MTN MoMo, Orange Money, Wave, CinetPay, Monetbil, PayDunya, or others.
Why Rust
The choice of Rust is deliberate and practical. Rust compiles to native binaries with no runtime dependency, which means the core logic can be compiled once and exposed to virtually any programming language through FFI (Foreign Function Interface). This directly serves the African developer ecosystem, where language fragmentation is real — teams building with PHP, Python, JavaScript/Node.js, Dart (Flutter), Kotlin, and Swift all deserve first-class support without the SDK team having to rewrite everything six times.
Rust also brings:
All of which matter when you are handling financial transactions where reliability is non-negotiable. Projects like Mozilla, Cloudflare, and the Linux kernel have already validated Rust for systems-level work at scale.
The Broader Context
Africa's payment landscape is fragmented by design — operators are country-specific, regulatory environments differ, and API standardization is largely absent. Organizations like the GSMA and the African Union have pushed for interoperability frameworks, but at the developer level, the tooling has not caught up.
Nkap is not trying to replace aggregators or become a financial intermediary. It sits cleanly at the developer tooling layer — the same way Stripe's libraries abstract card networks, Nkap abstracts African payment rails.
The goal is simple: a developer should be able to go from zero to a working payment integration in under an hour, in the language they already know.
Resources and Prior Art
Who This Is For
Nkap is for the developer in Douala building a delivery app, the team in Dakar launching a savings product, and the startup in Abidjan that just needs payments to work — without spending weeks on integration before they can ship.
Relevant Technology
Rust, FFI, API design, Cross language interoperability
Complexity
Required time
Categories