Skip to content

technology

· · 5 min read

Zimbabwe Payment Gateways in 2026

We're integrating Paynow, ContiPay, and Pesepay for Nyuchi Pay. Here's what each does well, where each falls short, and how we chose our stack.

By Bryan Fawcett

When we started building Nyuchi Pay, we needed to answer a straightforward question: which payment gateway should we use for Zimbabwe? The answer turned out to be less straightforward than the question.

We've evaluated Paynow, ContiPay, and Pesepay, and we're currently in the process of integrating ContiPay as our primary gateway. Here's what we've found so far, written for developers making the same decision.

What you're choosing between

Zimbabwe's payment landscape has three main developer-facing gateways: Paynow (the incumbent), ContiPay (the most complete), and Pesepay (the EcoCash specialist).

Paynow

What it does well. The most widely integrated gateway in Zimbabwe. The developer community is the largest, so finding someone who's solved your problem is easier.

Where it falls short. Paynow IP-whitelists. If your app is deployed on Vercel, Cloudflare Workers, Netlify, or any serverless platform — you don't have a static IP, and you can't integrate. Full stop. The standard workaround is a VPS in Zimbabwe with a static IP. Every developer does this independently. We're building a shared relay service as part of Nyuchi Pay to solve this for everyone.

Paynow also doesn't support Visa or Mastercard.

API quality. Functional but dated. Webhook delivery is reliable but documentation could be more explicit about retry behaviour.

ContiPay

What it does well. The most comprehensive single integration we found. One API gives you: Visa with 3D Secure, Mastercard with SecureCode, EcoCash USD and ZWL, Innbucks, OneMoney, TeleCash, ZIPIT, ZIMSWITCH, O'Mari, Mukuru, Nostro transfers, and direct deposit. That is the widest coverage of any Zimbabwean gateway.

ContiPay also supports disbursements — payouts from merchant to user — using RSA private key signing. If your platform needs to pay people (freelancer payouts, marketplace settlements, refunds to mobile wallets), this is built into the API.

Enterprise clients include Delta Beverages, Lafarge Cement, Dairibord — high-volume operations.

Where it falls short. Card payments use a redirect flow (3DS). The developer ecosystem is smaller than Paynow's. Official SDKs exist (JavaScript via npm, PHP via Composer) but are less community-tested.

API quality. Modern, well-structured. Clean sandbox. Real-time reporting. Webhook model is cleaner than Paynow's polling approach.

Pesepay

What it does well. Pesepay's EcoCash integration is arguably the best UX in the market. The seamless flow — collect the phone number in your UI and push a prompt directly — is smoother than Paynow or ContiPay for the same payment method. Also has a Dart SDK for Flutter.

Where it falls short. Visa support exists but is less polished than ContiPay's. Smallest of the three providers.

Our stack decision

We're building Nyuchi Pay on ContiPay as primary gateway. The reasoning:

  1. Visa + mobile money in one integration. Only gateway covering both without patching multiple providers.
  2. Disbursements. Mukoko's marketplace (BushTrade) and creator economy (Bytes, Novels) will need to pay users.
  3. Enterprise track record. Confidence in uptime and transaction volume.

We'll maintain Paynow as secondary for backwards compatibility. The provider schema in our pay database already has both registered — provider.provider has entries for Paynow, ContiPay, Pesepay, and EcoCash — and the credential vault structure is ready for when we go live.

The integration is in progress. The ledger engine underneath is built and running (see our post on the double-entry architecture). The provider integration layer — webhook handling, transaction mapping, credential encryption — is what we're wiring up now.

Practical advice for developers

If you only need EcoCash: Pesepay gives the best seamless UX.

If you need EcoCash + Visa: ContiPay. One integration, one dashboard.

If you need maximum local reach: Paynow has the widest existing merchant acceptance.

If you're on serverless: You need a proxy for Paynow. ContiPay and Pesepay don't have the IP-whitelisting constraint.

Things we've learned building the foundation

Test with real mobile money. Sandbox environments don't perfectly replicate async EcoCash confirmation flows. Budget time for real (small) transactions on the live network.

Build idempotency from day one. Every payment endpoint needs a client-supplied idempotency key, deduplicated at the database level. We use a double-entry journal model where each state transition is a separate accounting entry — this was the right call and we're glad we built it before touching provider APIs.

Encrypt provider credentials properly. Gateway API secrets belong in a vault (we use supabase_vault), never in application config, never logged, never in error reports, every access audited via a hash-chained event log.

Settlement timing varies. EcoCash confirms in seconds. Paynow batch-settles. ContiPay's Visa flow goes through 3DS redirect. Don't model all of these as the same "transaction with a status column." The journal entry model handles timing differences naturally.

The bigger picture

Zimbabwe's payment infrastructure is maturing fast. Three years ago, your options were Paynow or nothing. Today you have real choice, real competition, and real APIs. The gap between what's possible here and what's possible on Stripe is narrowing — not in feature count, but in the fundamental ability to build real products on real payment rails.

We'll update this post as our integration progresses. If you're building payments in Zimbabwe and want to compare notes, we're at contact@nyuchi.com or on GitHub.


Bryan Fawcett is the founder and CEO of Nyuchi Africa. Nyuchi Pay is the payments infrastructure layer of the Nyuchi platform, built on a double-entry ledger engine.