Xtopay
Back to publication room
Engineering10 min read · May 10, 2026

How We Engineered Payments Across 12 African Currencies

Building a multi-currency payment system for Africa isn't just an exchange rate problem. Here's a deep dive into the technical and operational challenges we solved.

KM

Kofi Mensah

Lead Engineer at Xtopay

How We Engineered Payments Across 12 African Currencies

When we started building Xtopay, one of the first hard decisions was how to handle currency. Africa has 54 countries and 42 active currencies. Our initial target market — West and East Africa — already spans GHS, NGN, KES, XOF, TZS, UGX, and several others. Each has different volatility profiles, settlement timelines, and float requirements.

The naive approach we avoided

The tempting path is to denominate everything in USD internally and convert at the edges. Many payment processors take this approach. The problem is that it creates a hidden cost layer for merchants: they collect in local currency, we convert to USD, then convert back to local for settlement. Two conversions, two spread charges, and the merchant has no visibility into the effective rate they received.

Our multi-currency ledger design

Instead, we built a multi-currency ledger where each merchant has isolated wallet balances per currency. A transaction in GHS settles to a GHS balance. A transaction in NGN settles to an NGN balance. Payouts are made from the matching currency balance. No implicit conversion happens unless the merchant explicitly requests it.

This design means merchants always know exactly what they earned in the currency they earned it in. Conversion becomes an explicit, opt-in operation with a transparent rate shown before confirmation.

Handling exchange rate risk

We refresh exchange rates every 15 minutes from multiple sources and use a weighted median to prevent rate manipulation. For transactions above a threshold size, we lock the rate at payment initiation and hold it for 90 seconds — enough time to complete the payment flow without the merchant facing unexpected rate shifts on large transactions.

Settlement timing differences

Mobile money settles in near-real-time. Bank transfers can take T+1 to T+3 depending on the network and country. Card transactions involve a 24-48 hour hold period. Our settlement engine unifies these into a consistent experience: funds show as 'pending' until they're truly settled, and the settlement timeline is surfaced clearly in the dashboard.

  • Mobile money: T+0 (same day, usually within minutes)
  • Local bank transfer: T+1 to T+2
  • Card (Visa/Mastercard): T+2 with chargeback reserve
  • Cross-border transfers: T+3 to T+5 depending on correspondent banking
KM

Kofi Mensah

Lead Engineer at Xtopay

Building the high-fidelity payments infrastructure and cryptographic double-entry ledgers for emerging African business ecosystems.

Keep Reading