API MolediPay

Encaissez et payez par mobile money dans 21 pays africains avec une seule intégration. Utilisez l'orchestrateur (MolediPay choisit la passerelle et bascule en cas de panne) ou appelez directement la passerelle de votre choix.

Présentation

Orchestrateur

/v1/deposits, /v1/links, /v1/payouts : MolediPay choisit la passerelle selon le routage de votre application et bascule si elle refuse.

PawaPay

/v1/pawapay/… : 13 pays, opérateur détecté automatiquement.

Swychr

/v1/swychr/… : 18 pays, opérateur à préciser quand le pays en a plusieurs.

Même format partout

Mêmes champs, même réponse, mêmes webhooks signés, quelle que soit l'adresse utilisée.

Authentification

Toutes les requêtes portent la clé API de votre application. URL de base : https://moledipay.com/v1.

Authorization: Bearer mp_votre_cle_api
La clé API donne accès aux fonds de l'application : appelez l'API uniquement depuis votre serveur, jamais depuis un navigateur ou une application mobile. En cas de fuite, l'administrateur la régénère en un clic.

Sécurité

Toutes les adresses

OpérationOrchestrateurPawaPay uniquementSwychr uniquement
Encaissement directPOST/v1/depositsPOST/v1/pawapay/depositsPOST/v1/swychr/deposits
Lien de paiementPOST/v1/linksPOST/v1/pawapay/linksPOST/v1/swychr/links
RetraitPOST/v1/payoutsPOST/v1/pawapay/payoutsPOST/v1/swychr/payouts
Moyens de paiementGET/v1/methodsGET/v1/pawapay/methodsGET/v1/swychr/methods
SoldesGET/v1/balanceGET/v1/pawapay/balanceGET/v1/swychr/balance
Consulter un paiementGET/v1/payments/{id ou reference}
GénériquePOST/v1/payments — tous les champs dans le corps (type, mode, provider).

Orchestrateur : comment il choisit

  1. Il détermine le pays (country, ou l'indicatif du numéro) et l'opérateur (network, ou détection à partir du numéro).
  2. Il prend les passerelles dans l'ordre défini pour ce pays, cet opérateur et cette opération : règle de votre application, sinon de la plateforme, sinon la moins chère.
  3. Il écarte celles hors service (surveillance toutes les 5 minutes) et place en dernier celles dégradées.
  4. Il essaie la première ; si elle refuse immédiatement, il essaie la suivante. Les essais sont listés dans attempts.
Un retrait n'est rebasculé que sur refus explicite de la passerelle. Si la réponse est incertaine (coupure réseau), MolediPay ne réessaie jamais ailleurs, pour ne pas payer deux fois ; il suit le retrait jusqu'à sa conclusion.

Champs

ChampDescription
amountobligatoireMontant dans la devise du pays (XAF, XOF, KES…).
referenceobligatoireVotre identifiant unique (100 caractères max). La même référence renvoie le paiement existant, sans doublon.
phoneNuméro du client ou du bénéficiaire, avec ou sans indicatif. Obligatoire sauf pour un lien PawaPay.
countryCode ISO (CM, CI, SN…). Facultatif si le numéro contient l'indicatif.
networkOpérateur : MTN, ORANGE, WAVE, MOOV, AIRTEL, MPESA… Détecté quand c'est possible, exigé sinon.
currencyFacultatif : devise attendue, vérifiée.
customer_name, customer_emailFacultatifs ; nom du bénéficiaire recommandé pour un retrait.
descriptionMotif affiché au client quand la passerelle le permet.
callback_urlURL https recevant le webhook de ce paiement (sinon celle de l'application).
return_urlLiens : page où revient le client après paiement.

Encaissement orchestré

POST/v1/deposits

curl -X POST https://moledipay.com/v1/deposits \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"CM","amount":5000,"phone":"670000000","reference":"CMD-1042","description":"Commande 1042"}'

POST/v1/links — la passerelle est choisie par la règle du pays pour les liens ; la réponse contient payment_url.

curl -X POST https://moledipay.com/v1/links \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"CI","amount":10000,"phone":"0707000000","customer_name":"Awa Koné","reference":"CMD-1043"}'

Retrait orchestré

POST/v1/payouts — refusé (INSUFFICIENT_BALANCE) si aucune passerelle possible n'a assez de solde pour votre application dans ce pays, frais compris.

curl -X POST https://moledipay.com/v1/payouts \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"SN","network":"WAVE","amount":20000,"phone":"771234567","customer_name":"Moussa Diop","reference":"RETRAIT-88"}'

Retraits groupés (tout-ou-rien)

POST/v1/payouts/batch — plusieurs retraits (jusqu'à 20) envoyés ensemble. MolediPay vérifie d'abord que chaque retrait est couvert par un portefeuille de votre application, frais compris et en cumulant les parts qui tombent sur le même portefeuille. Si une seule part n'est pas couverte, tout le lot est refusé (BATCH_NOT_COVERED) et aucun retrait n'est envoyé. Chaque retrait garde sa propre reference ; le lot entier partage batch_reference (idempotent).

curl -X POST https://moledipay.com/v1/payouts/batch \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"reference":"RETRAIT-GROUPE-12","items":[
        {"reference":"RG12-A","country":"CM","network":"MTN","amount":10000,"phone":"670000000","customer_name":"Awa"},
        {"reference":"RG12-B","country":"CM","network":"MTN","amount":1000,"phone":"670000000","customer_name":"Awa"}]}'

Node.js

const res = await fetch("https://moledipay.com/v1/deposits", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.MOLEDIPAY_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ country: "CM", amount: 5000, phone: "670000000", reference: orderId }),
});
const payment = await res.json();
if (!res.ok && !payment.id) throw new Error(`${payment.code} : ${payment.error}`);

PHP

$ch = curl_init('https://moledipay.com/v1/deposits');
curl_setopt_array($ch, [
  CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('MOLEDIPAY_API_KEY'), 'Content-Type: application/json'],
  CURLOPT_POSTFIELDS => json_encode(['country' => 'CM', 'amount' => 5000, 'phone' => '670000000', 'reference' => $orderId]),
]);
$payment = json_decode(curl_exec($ch), true);

Python

import os, requests
payment = requests.post("https://moledipay.com/v1/deposits",
    headers={"Authorization": f"Bearer {os.environ['MOLEDIPAY_API_KEY']}"},
    json={"country": "CM", "amount": 5000, "phone": "670000000", "reference": order_id}, timeout=30).json()

Réponse

HTTP/1.1 201 Created
{
  "id": "4806bd66-9565-48d6-885f-59c34d021832", "reference": "CMD-1042",
  "type": "deposit", "mode": "direct", "routing": "auto",
  "provider": "pawapay", "operator": "MTN", "network": "MTN_MOMO_CMR",
  "status": "PENDING", "amount": 5000, "fee": 87.5, "fee_source": "grid", "currency": "XAF", "country": "CM",
  "phone": "237670000000", "payment_url": null, "failure_reason": null,
  "attempts": [ { "provider": "pawapay", "outcome": "PENDING", "provider_status": "ACCEPTED" } ],
  "created_at": "2026-09-28T10:00:00.000Z"
}

PawaPay

Ces adresses utilisent uniquement PawaPay, sans bascule vers une autre passerelle. L'opération est fixée par l'adresse : n'envoyez pas type, mode ni provider.

AdresseRôle
POST/v1/pawapay/depositsEncaissement direct : demande de validation envoyée sur le téléphone du client.
POST/v1/pawapay/linksLien de paiement à transmettre au client.
POST/v1/pawapay/payoutsRetrait : envoi d'argent vers un compte mobile money.
GET/v1/pawapay/methodsPays, opérateurs et frais PawaPay activés pour votre application.
GET/v1/pawapay/balanceSoldes de votre application chez PawaPay, par pays.

Particularités PawaPay

Encaissement direct

curl -X POST https://moledipay.com/v1/pawapay/deposits \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"CM","amount":5000,"phone":"670000000","reference":"CMD-2001","description":"Commande 2001"}'

Lien de paiement

curl -X POST https://moledipay.com/v1/pawapay/links \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"CM","amount":5000,"reference":"CMD-2002","description":"Commande 2002","return_url":"https://monsite.com/merci"}'

Retrait

curl -X POST https://moledipay.com/v1/pawapay/payouts \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"CM","amount":10000,"phone":"690000000","customer_name":"Paul Mbarga","reference":"RET-2003"}'

Pays, opérateurs et valeurs de network

PaysOpérateurnetworkDeviseEncaissementRetraitLimites (par opération)
Cameroun
CM · +237
MTN Mobile MoneyMTN_MOMO_CMRXAF✓✓1 – 1000000
Orange MoneyORANGE_CMRXAF✓✓1 – 1000000
Côte d'Ivoire
CI · +225
MTN Mobile MoneyMTN_MOMO_CIVXOF✓✓1 – 2000000
Orange MoneyORANGE_CIVXOF✓✓1 – 1500000
Sénégal
SN · +221
Free Money / YASFREE_SENXOF✓✓5 – 2000000
Orange MoneyORANGE_SENXOF✓✓2 – 2000000
Bénin
BJ · +229
Moov MoneyMOOV_BENXOF✓✓100 – 2000000
MTN Mobile MoneyMTN_MOMO_BENXOF✓✓1 – 2000000
Gabon
GA · +241
Airtel MoneyAIRTEL_GABXAF✓✓100 – 500000
Congo-Brazzaville
CG · +242
Airtel MoneyAIRTEL_COGXAF✓✓10 – 1500000
MTN Mobile MoneyMTN_MOMO_COGXAF✓✓1 – 2000000
RD Congo
CD · +243
Airtel MoneyAIRTEL_CODCDF✓✓100 – 6250000
Airtel MoneyAIRTEL_CODUSD✓✓0.1 – 2500
Orange MoneyORANGE_CODCDF✓✓10 – 1000000
Orange MoneyORANGE_CODUSD✓✓0.01 – 2500
M-PesaVODACOM_MPESA_CODCDF✓✓500 – 1000000
M-PesaVODACOM_MPESA_CODUSD✓✓0.5 – 2500
Kenya
KE · +254
M-PesaMPESA_KENKES✓✓1 – 250000
Ouganda
UG · +256
Airtel MoneyAIRTEL_OAPI_UGAUGX✓✓500 – 5000000
MTN Mobile MoneyMTN_MOMO_UGAUGX✓✓500 – 5000000
Rwanda
RW · +250
Airtel MoneyAIRTEL_RWARWF✓✓100 – 1500000
MTN Mobile MoneyMTN_MOMO_RWARWF✓✓5 – 2000000
Zambie
ZM · +260
MTN Mobile MoneyMTN_MOMO_ZMBZMW✓✓1 – 20000
Zamtel KwachaZAMTEL_ZMBZMW✓✓1 – 20000
Mozambique
MZ · +258
M-PesaVODACOM_MOZMZN✓✓0.01 – 125000
Sierra Leone
SL · +232
Orange MoneyORANGE_SLESLE✓✓1 – 15000

Swychr

Ces adresses utilisent uniquement Swychr, sans bascule vers une autre passerelle. L'opération est fixée par l'adresse : n'envoyez pas type, mode ni provider.

AdresseRôle
POST/v1/swychr/depositsEncaissement direct : demande de validation envoyée sur le téléphone du client.
POST/v1/swychr/linksLien de paiement à transmettre au client.
POST/v1/swychr/payoutsRetrait : envoi d'argent vers un compte mobile money.
GET/v1/swychr/methodsPays, opérateurs et frais Swychr activés pour votre application.
GET/v1/swychr/balanceSoldes de votre application chez Swychr, par pays.

Particularités Swychr

Encaissement direct

curl -X POST https://moledipay.com/v1/swychr/deposits \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"CI","network":"WAVE","amount":5000,"phone":"0707000000","customer_name":"Awa Koné","reference":"CMD-3001"}'

Lien de paiement

curl -X POST https://moledipay.com/v1/swychr/links \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"CM","amount":5000,"phone":"690000000","customer_name":"Jean Nkodo","reference":"CMD-3002"}'

Retrait

curl -X POST https://moledipay.com/v1/swychr/payouts \
  -H "Authorization: Bearer mp_votre_cle" -H "Content-Type: application/json" \
  -d '{"country":"SN","network":"WAVE","amount":20000,"phone":"771234567","customer_name":"Moussa Diop","reference":"RET-3003"}'

Pays, opérateurs et valeurs de network

PaysOpérateurnetworkDeviseEncaissementRetraitFormat du numéro
Cameroun
CM · +237
Orange MoneyORANGEXAF✓✓2376XXXXXXXX (9 chiffres)
MTN Mobile MoneyMTNXAF✓✓2376XXXXXXXX (9 chiffres)
Côte d'Ivoire
CI · +225
WaveWaveXOF✓✓05XXXXXXXX (10 chiffres)
Moov MoneyMoovXOF✓✓01XXXXXXXX (10 chiffres)
MTN Mobile MoneyMTNXOF✓✓05XXXXXXXX (10 chiffres)
Orange MoneyOrangeXOF✓✓07XXXXXXXX (10 chiffres)
Sénégal
SN · +221
Orange MoneyOrangeXOF✓✓7XXXXXXXXX (9 chiffres)
Free Money / YASFreeXOF✓✓7XXXXXXXXX (9 chiffres)
WaveWaveXOF✓✓7XXXXXXXXX (9 chiffres)
Bénin
BJ · +229
MTN Mobile MoneyMTNXOF✓✓6XXXXXXX (8 chiffres)
Moov MoneyMoovXOF✓✓9XXXXXXX (8 chiffres)
Togo
TG · +228
T-MoneyTmoneyXOF✓✓9XXXXXXX (8 chiffres)
Moov MoneyMoovXOF✓✓9XXXXXXX (8 chiffres)
Burkina Faso
BF · +226
Moov MoneyMoovXOF✓✓7XXXXXXX (8 chiffres)
Orange MoneyOrangeXOF✓✓7XXXXXXX (8 chiffres)
TouchCashTouchCashXOF✓✓7XXXXXXX (8 chiffres)
Mali
ML · +223
Orange MoneyOrangeXOF✓✓7XXXXXXX (8 chiffres)
Moov MoneyMoovXOF✓✓7XXXXXXX (8 chiffres)
WaveWaveXOF✓✓7XXXXXXX (8 chiffres)
Niger
NE · +227
Airtel MoneyAirtelXOF✓✓—
Guinée
GN · +224
MTN Mobile MoneyMTNGNF✓✓6XXXXXXXX (9 chiffres)
Orange MoneyOrangeGNF✓✓6XXXXXXXX (9 chiffres)
Gabon
GA · +241
Airtel MoneyAirtelXAF✓✓09XXXXXXX (9 chiffres)
Moov MoneyMoovXAF✓✓06XXXXXXX (9 chiffres)
Congo-Brazzaville
CG · +242
MTN Mobile MoneyMTNXAF✓✓—
Airtel MoneyAirtelXAF✓✓—
RD Congo
CD · +243
Airtel MoneyAIRTELCDF✓✓8XXXXXXXX (9 chiffres)
AfrimoneyAFRIMONEYCDF✓✓8XXXXXXXX (9 chiffres)
M-PesaMpesaCDF✓✓8XXXXXXXX (9 chiffres)
Orange MoneyOrangeCDF✓✓8XXXXXXXX (9 chiffres)
Kenya
KE · +254
M-PesaMPESAKES✓✓7XXXXXXXXX (9 chiffres)
Airtel MoneyAIRTELKES✓✓7XXXXXXXXX (9 chiffres)
Ouganda
UG · +256
MTN Mobile MoneyMTNUGX✓✓7XXXXXXXXX (9 chiffres)
Airtel MoneyAIRTELUGX✓✓7XXXXXXXXX (9 chiffres)
Tanzanie
TZ · +255
T-Pesa (TTCL)TTCLTZS✓✓—
M-PesaMPESATZS✓✓7XXXXXXXX (9 chiffres)
Airtel MoneyAIRTELTZS✓✓6XXXXXXXX (9 chiffres)
Tigo Pesa / MixxTIGO PESATZS✓✓6XXXXXXXX (9 chiffres)
Ezy PesaEZY PESATZS✓✓XXXXXXXXX (9 chiffres)
Halo PesaHALO PESATZS✓✓6XXXXXXXX (9 chiffres)
Rwanda
RW · +250
MTN Mobile MoneyMTNRWF✓✓—
Airtel MoneyAirtelRWF✓✓—
Ghana
GH · +233
Telecel CashVodafoneGHS✓✓233XXXXXXXXX (9 chiffres)
MTN Mobile MoneyMTNGHS✓✓233XXXXXXXXX (9 chiffres)
Airtel MoneyAirtelGHS✓✓233XXXXXXXXX (9 chiffres)
Nigeria
NG · +234
Virement bancaireAll Banks TransferNGN✓✓234XXXXXXXXXX (10 chiffres)

Consulter un paiement

GET/v1/payments/{id ou reference} — s'il est en attente, MolediPay interroge la passerelle avant de répondre. À utiliser en secours ; le webhook reste la méthode normale.

Moyens de paiement

GET/v1/methods (ou /v1/pawapay/methods, /v1/swychr/methods) — pays et opérateurs activés pour votre application, avec pour chaque opération les passerelles dans l'ordre de routage, leur état et leurs frais.

[ { "country": "CM", "name": "Cameroun", "operators": [
  { "operator": "ORANGE", "name": "Orange Money",
    "deposit": { "available": true, "providers": [
      { "provider": "pawapay", "network": "ORANGE_CMR", "currency": "XAF", "status": "UP",
        "fees": { "deposit_percent": 1.77, "payout_percent": 1, "payout_min": 0, "payout_fixed": 0, "inclusive": false } },
      { "provider": "swychr", "network": "ORANGE", "currency": "XAF", "status": "UP",
        "fees": { "deposit_percent": 2.5, "payout_percent": 1.5, "payout_min": 450, "payout_fixed": 0, "inclusive": true } } ] },
    "payout": { "available": true, "providers": [ … ] } } ] } ]

Soldes

GET/v1/balance (ou /v1/pawapay/balance, /v1/swychr/balance) — un solde par portefeuille (passerelle + pays + devise). L'argent encaissé via une passerelle dans un pays se retire depuis cette même passerelle, dans ce même pays.

[ { "provider": "pawapay", "country": "CM", "currency": "XAF",
    "collected": 150000, "fees": 2625, "paid_out": 50000, "reserved": 0, "available": 97375, "withdrawable": 96125 } ]

Frais

Webhooks

À chaque changement de statut, MolediPay envoie un POST JSON à l'URL de webhook de votre application (ou au callback_url du paiement).

POST https://votre-site.com/webhooks/moledipay
X-MolediPay-Event: payment.updated
X-MolediPay-Delivery: 1289
X-MolediPay-Timestamp: 1790343528
X-MolediPay-Signature: 5f2b1c…

{ "event": "payment.updated", "created_at": "…", "data": { "id": "…", "reference": "CMD-1042", "status": "SUCCESSFUL", "amount": 5000, "fee": 87.5, "provider": "pawapay", … } }

Vérifier la signature

Signature = HMAC-SHA256 hexadécimal de {timestamp}.{corps brut} avec votre secret whsec_…. Rejetez toute signature invalide ou tout horodatage de plus de 5 minutes.

import crypto from "node:crypto";
app.post("/webhooks/moledipay", express.raw({ type: "application/json" }), (req, res) => {
  const ts = req.get("X-MolediPay-Timestamp"), sig = req.get("X-MolediPay-Signature") || "";
  const expected = crypto.createHmac("sha256", process.env.MOLEDIPAY_WEBHOOK_SECRET).update(`${ts}.${req.body}`).digest("hex");
  const ok = Math.abs(Date.now() / 1000 - Number(ts)) < 300 && expected.length === sig.length &&
    crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(sig));
  if (!ok) return res.status(401).end();
  res.status(200).end();
  const event = JSON.parse(req.body);
});
<?php
$raw = file_get_contents('php://input');
$ts = $_SERVER['HTTP_X_MOLEDIPAY_TIMESTAMP'] ?? ''; $sig = $_SERVER['HTTP_X_MOLEDIPAY_SIGNATURE'] ?? '';
$expected = hash_hmac('sha256', $ts . '.' . $raw, getenv('MOLEDIPAY_WEBHOOK_SECRET'));
if (abs(time() - (int) $ts) > 300 || !hash_equals($expected, $sig)) { http_response_code(401); exit; }
http_response_code(200);
$event = json_decode($raw, true);
import hmac, hashlib, time
def verify(raw_body: bytes, ts: str, sig: str, secret: str) -> bool:
    expected = hmac.new(secret.encode(), f"{ts}.".encode() + raw_body, hashlib.sha256).hexdigest()
    return abs(time.time() - int(ts)) < 300 and hmac.compare_digest(expected, sig)

Statuts

PENDINGEn attente de validation par le client ou de confirmation de la passerelle.
SUCCESSFULArgent reçu (encaissement) ou envoyé (retrait). Définitif.
FAILEDRefusé, annulé ou expiré (voir failure_reason). Définitif.

Erreurs

Format : { "error": "message", "code": "CODE", "details": … }

HTTPcodeSignification
401UNAUTHORIZEDClé API absente ou invalide.
403APP_SUSPENDEDApplication suspendue.
403METHOD_NOT_ENABLEDPasserelle non activée pour ce pays sur votre application.
400INVALID_REQUESTChamps manquants ou invalides (details).
400COUNTRY_REQUIREDPays impossible à déduire.
422NETWORK_REQUIREDOpérateur impossible à déduire (details.operators).
422NO_ROUTEAucune passerelle disponible pour ce pays, cet opérateur et cette opération.
422INVALID_PAYMENTNuméro ou opérateur invalide pour ce pays.
422INVALID_CURRENCYDevise différente de celle du pays.
422AMOUNT_OUT_OF_RANGEMontant hors limites de l'opérateur.
422INSUFFICIENT_BALANCERetrait supérieur au solde disponible, frais compris.
429RATE_LIMITEDPlus de 300 requêtes par minute.
404NOT_FOUNDPaiement introuvable.

Couverture complète

Lue en direct chez les passerelles. La colonne « Opérateur » donne la valeur network pour l'orchestrateur ; les autres colonnes, la valeur propre à chaque passerelle.

PaysOpérateur · network (orchestrateur)PawaPay · networkSwychr · network
Cameroun
CM · +237 · XAF
MTN Mobile Money
MTN
MTN_MOMO_CMR
encaissement · retrait
MTN
encaissement · retrait
Orange Money
ORANGE
ORANGE_CMR
encaissement · retrait
ORANGE
encaissement · retrait
Côte d'Ivoire
CI · +225 · XOF
Moov Money
MOOV
—Moov
encaissement · retrait
MTN Mobile Money
MTN
MTN_MOMO_CIV
encaissement · retrait
MTN
encaissement · retrait
Orange Money
ORANGE
ORANGE_CIV
encaissement · retrait
Orange
encaissement · retrait
Wave
WAVE
—Wave
encaissement · retrait
Sénégal
SN · +221 · XOF
Free Money / YAS
FREE
FREE_SEN
encaissement · retrait
Free
encaissement · retrait
Orange Money
ORANGE
ORANGE_SEN
encaissement · retrait
Orange
encaissement · retrait
Wave
WAVE
—Wave
encaissement · retrait
Bénin
BJ · +229 · XOF
Moov Money
MOOV
MOOV_BEN
encaissement · retrait
Moov
encaissement · retrait
MTN Mobile Money
MTN
MTN_MOMO_BEN
encaissement · retrait
MTN
encaissement · retrait
Togo
TG · +228 · XOF
Moov Money
MOOV
—Moov
encaissement · retrait
T-Money
TMONEY
—Tmoney
encaissement · retrait
Burkina Faso
BF · +226 · XOF
Moov Money
MOOV
—Moov
encaissement · retrait
Orange Money
ORANGE
—Orange
encaissement · retrait
TouchCash
TOUCHCASH
—TouchCash
encaissement · retrait
Mali
ML · +223 · XOF
Moov Money
MOOV
—Moov
encaissement · retrait
Orange Money
ORANGE
—Orange
encaissement · retrait
Wave
WAVE
—Wave
encaissement · retrait
Niger
NE · +227 · XOF
Airtel Money
AIRTEL
—Airtel
encaissement · retrait
Guinée
GN · +224 · GNF
MTN Mobile Money
MTN
—MTN
encaissement · retrait
Orange Money
ORANGE
—Orange
encaissement · retrait
Gabon
GA · +241 · XAF
Airtel Money
AIRTEL
AIRTEL_GAB
encaissement · retrait
Airtel
encaissement · retrait
Moov Money
MOOV
—Moov
encaissement · retrait
Congo-Brazzaville
CG · +242 · XAF
Airtel Money
AIRTEL
AIRTEL_COG
encaissement · retrait
Airtel
encaissement · retrait
MTN Mobile Money
MTN
MTN_MOMO_COG
encaissement · retrait
MTN
encaissement · retrait
RD Congo
CD · +243 · CDF
Afrimoney
AFRIMONEY
—AFRIMONEY
encaissement · retrait
Airtel Money
AIRTEL
AIRTEL_COD
encaissement · retrait
AIRTEL
encaissement · retrait
M-Pesa
MPESA
VODACOM_MPESA_COD
encaissement · retrait
Mpesa
encaissement · retrait
Orange Money
ORANGE
ORANGE_COD
encaissement · retrait
Orange
encaissement · retrait
Kenya
KE · +254 · KES
Airtel Money
AIRTEL
—AIRTEL
encaissement · retrait
M-Pesa
MPESA
MPESA_KEN
encaissement · retrait
MPESA
encaissement · retrait
Ouganda
UG · +256 · UGX
Airtel Money
AIRTEL
AIRTEL_OAPI_UGA
encaissement · retrait
AIRTEL
encaissement · retrait
MTN Mobile Money
MTN
MTN_MOMO_UGA
encaissement · retrait
MTN
encaissement · retrait
Tanzanie
TZ · +255 · TZS
Airtel Money
AIRTEL
—AIRTEL
encaissement · retrait
Ezy Pesa
EZYPESA
—EZY PESA
encaissement · retrait
Halo Pesa
HALOPESA
—HALO PESA
encaissement · retrait
M-Pesa
MPESA
—MPESA
encaissement · retrait
Tigo Pesa / Mixx
TIGOPESA
—TIGO PESA
encaissement · retrait
T-Pesa (TTCL)
TTCL
—TTCL
encaissement · retrait
Rwanda
RW · +250 · RWF
Airtel Money
AIRTEL
AIRTEL_RWA
encaissement · retrait
Airtel
encaissement · retrait
MTN Mobile Money
MTN
MTN_MOMO_RWA
encaissement · retrait
MTN
encaissement · retrait
Ghana
GH · +233 · GHS
Airtel Money
AIRTEL
—Airtel
encaissement · retrait
MTN Mobile Money
MTN
—MTN
encaissement · retrait
Telecel Cash
VODAFONE
—Vodafone
encaissement · retrait
Nigeria
NG · +234 · NGN
Virement bancaire
ALLBANKSTRANSFER
—All Banks Transfer
encaissement · retrait
Zambie
ZM · +260 · ZMW
MTN Mobile Money
MTN
MTN_MOMO_ZMB
encaissement · retrait
—
Zamtel Kwacha
ZAMTEL
ZAMTEL_ZMB
encaissement · retrait
—
Mozambique
MZ · +258 · MZN
M-Pesa
MPESA
VODACOM_MOZ
encaissement · retrait
—
Sierra Leone
SL · +232 · SLE
Orange Money
ORANGE
ORANGE_SLE
encaissement · retrait
—

Bonnes pratiques