The verdict in three sentences
A good multi-currency checkout detects the visitor's country (geo/IP, language) and shows FCFA for local, EUR/USD for the diaspora. The golden rule: each currency must be collected by the provider that pays it out natively — FCFA via Wave/OM/aggregator, EUR/USD via Stripe or Flutterwave — to avoid double conversions that erode margin. On the euro side, the fixed parity 655.957 makes display stable; on the dollar side, recalculate daily and round cleanly.
Currency → provider → payout mapping
| Displayed currency | Target customer | Recommended provider | Payout currency | Trap to avoid |
|---|---|---|---|---|
| FCFA (XOF) | Local SN/CI | Wave, OM, aggregator | XOF | None (no conversion) |
| EUR | Europe diaspora | Stripe or Flutterwave | EUR or XOF | Double EUR→USD→XOF conversion |
| USD | USA diaspora | Stripe | USD | Stale frozen rate |
| GBP | UK diaspora | Stripe | GBP/USD | Hidden conversion fees |
Avoid collecting in EUR to pay out in USD then XOF: each hop costs ~1-2% in conversion. The right reflex: one currency, one direct payout rail.
Display, rounding and reconciliation
| Topic | Best practice | Figure detail |
|---|---|---|
| EUR/XOF parity | Official fixed rate | €1 = 655.957 FCFA |
| USD conversion | Market rate + margin | Daily recalculation |
| Display rounding | "Clean" amounts | 30,000 FCFA → €45.73 |
| Currency detection | Geo/IP + manual selector | Always allow switching |
| Reconciliation | Store currency + rate per order | For accounting |
| Accounting | Convert everything to FCFA for the ledger | One reference currency |
Always store, for each order, the display currency, amount, applied rate and payout currency. Without this, multi-currency accounting reconciliation becomes a month-end nightmare.
Mini case study
Khady sells cosmetics from Dakar: 60% local, 40% France diaspora. An item at 20,000 FCFA shows as is for Dakar (paid via Wave, paid out in XOF, 0 conversion) and at €30.49 (20,000 / 655.957) for Paris, collected by card via Flutterwave which pays out directly in XOF. On 50 diaspora sales/month, by avoiding the EUR→USD→XOF double conversion, she saves about 1.5% on ~1,524,500 FCFA of diaspora revenue, i.e. ~22,000 FCFA/month of recovered margin — purely thanks to the right currency → provider routing.
FAQ
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
What EUR/FCFA rate should I use in the checkout?
The parity is fixed: €1 = 655.957 FCFA. Use this official rate for euro display; it does not move, unlike the dollar which must be recalculated daily.
Do I need a manual currency selector?
Yes. Detect the currency by geo/IP for convenience, but always let the visitor switch: a travelling Senegalese or a diaspora member may want the other currency.
How do I avoid losing money on conversion?
Collect each currency with a provider that pays it out natively. Double conversions (EUR→USD→XOF) cost 1 to 2% per hop: favour a direct rail per currency.
How do I keep multi-currency accounting?
Store the currency, amount and applied rate per order, then convert everything to FCFA for the ledger. A single reference currency simplifies filings and reconciliation.
Which provider collects multiple currencies?
Stripe (via a foreign entity) handles EUR/USD/GBP well; Flutterwave collects international cards and pays out in XOF, EUR or USD. Combine them with Wave/OM for local FCFA.
Let's talk about your project. We design your multi-currency FCFA/EUR/USD checkout with clean routing and reconciliation. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.
