TechniqueÀ la une

Comment intégrer Orange Money dans votre application en 2026

J

Jean-Pierre Mbarga

Lead Developer

15 décembre 202610 min de lecture
C

Comment intégrer Orange Money dans votre application en 2026

Orange Money est le portefeuille mobile le plus utilisé en Afrique Centrale et de l'Ouest. Avec plus de 30 millions d'utilisateurs actifs au Cameroun, au Sénégal et en Côte d'Ivoire, l'intégration d'Orange Money est devenue incontournable pour tout business digital.

Pourquoi intégrer Orange Money ?

Le marché du Mobile Money en chiffres

  • 70% des transactions digitales en Afrique passent par le Mobile Money
  • +40% de croissance annuelle du volume de transactions
  • 85% des adultes au Cameroun possèdent un compte Mobile Money
  • Orange Money représente 45% de parts de marché en zone CEMAC

Les avantages pour votre business

  1. Accessibilité - Touchez des millions de clients sans carte bancaire
  2. Confiance - Orange est une marque connue et respectée
  3. Instantanéité - Paiements confirmés en quelques secondes
  4. Faibles coûts - Commissions inférieures aux cartes bancaires

Les options d'intégration

Option 1 : Intégration directe avec Orange

Avantages :
  • Relation directe avec l'opérateur

Inconvénients :
  • Processus long (3-6 mois de négociation)
  • Documentation technique limitée
  • Support développeur minimal
  • Une intégration par pays

Option 2 : Utiliser un agrégateur comme Simiz

Avantages :
  • Intégration en quelques heures
  • Une seule API pour Orange Money + MTN MoMo
  • Documentation complète et SDKs
  • Support technique réactif
  • Multi-pays avec un seul contrat

Inconvénients :
  • Commission légèrement plus élevée (compensée par le gain de temps)

Guide d'intégration avec Simiz

Étape 1 : Créer votre compte

  1. Rendez-vous sur simiz.io/register
  2. Remplissez le formulaire d'inscription
  3. Vérifiez votre email
  4. Complétez la vérification KYB (documents d'entreprise)

Étape 2 : Obtenir vos clés API

Une fois votre compte vérifié :

  1. Accédez à votre Dashboard
  2. Créez un nouveau projet
  3. Générez vos clés API (Sandbox puis Production)

Clés Sandbox pour les tests

SIMIZ_API_KEY=smz_test_pk_xxxxx

SIMIZ_SECRET_KEY=smz_test_sk_xxxxx

Clés Production (après validation)

SIMIZ_API_KEY=smz_live_pk_xxxxx

SIMIZ_SECRET_KEY=smz_live_sk_xxxxx

Étape 3 : Installer le SDK

Node.js / JavaScript
npm install @simiz/sdk
PHP
composer require simiz/simiz-php
Python
pip install simiz

Étape 4 : Initier un paiement Orange Money

import { Simiz } from '@simiz/sdk';

// Initialisation

const simiz = new Simiz({

apiKey: process.env.SIMIZ_API_KEY,

secretKey: process.env.SIMIZ_SECRET_KEY,

sandbox: true // false en production

});

// Créer un paiement

async function createOrangeMoneyPayment() {

const payment = await simiz.payments.create({

amount: 5000, // Montant en FCFA

currency: 'XAF',

phone: '+237691234567', // Numéro Orange Money du client

provider: 'orange_money',

description: 'Achat sur MonSite.com',

reference: 'CMD-2026-001',

callbackUrl: 'https://monsite.com/webhook',

returnUrl: 'https://monsite.com/success',

metadata: {

orderId: '12345',

customerId: 'CUST-001'

}

});

console.log('Paiement créé:', payment.id);

console.log('Statut:', payment.status); // 'pending'

return payment;

}

Étape 5 : Gérer la confirmation

Après l'initiation, le client reçoit une notification USSD ou Push sur son téléphone. Il doit entrer son code PIN pour confirmer.

Configuration du webhook :
// Express.js

app.post('/webhook', async (req, res) => {

// Vérifier la signature

const signature = req.headers['x-simiz-signature'];

const isValid = simiz.webhooks.verify(req.body, signature);

if (!isValid) {

return res.status(401).json({ error: 'Signature invalide' });

}

const event = req.body;

switch (event.type) {

case 'payment.success':

// Paiement confirmé - livrer le produit/service

await fulfillOrder(event.data.reference);

break;

case 'payment.failed':

// Paiement échoué - notifier le client

await notifyPaymentFailed(event.data);

break;

case 'payment.expired':

// Timeout - proposer de réessayer

await handleExpiredPayment(event.data);

break;

}

res.json({ received: true });

});

Codes d'erreur courants

CodeDescriptionSolution
insufficient_balanceSolde Orange Money insuffisantInformer le client de recharger
invalid_phoneNuméro non Orange MoneyVérifier le préfixe (69x, 65x)
transaction_limitPlafond journalier atteintReporter au lendemain
service_unavailableOrange Money temporairement indisponibleRéessayer plus tard
pin_errorCode PIN incorrect (3 tentatives max)Contact support Orange

Bonnes pratiques

1. Validation du numéro

Vérifiez que le numéro est bien un numéro Orange Money avant d'initier le paiement :

function isOrangeMoneyNumber(phone) {

// Préfixes Orange au Cameroun

const orangePrefixes = ['237691', '237692', '237693', '237694', '237695', '237696', '237697', '237698', '237699', '237651', '237652', '237653', '237654', '237655', '237656', '237657', '237658', '237659'];

const cleanPhone = phone.replace(/[^0-9]/g, '');

return orangePrefixes.some(prefix => cleanPhone.startsWith(prefix));

}

2. Gestion des timeouts

Les paiements Orange Money expirent après 15 minutes. Implémentez un système de relance :

// Vérification périodique du statut

async function checkPaymentStatus(paymentId, maxAttempts = 10) {

for (let i = 0; i < maxAttempts; i++) {

const payment = await simiz.payments.retrieve(paymentId);

if (payment.status === 'success') {

return { success: true, payment };

}

if (['failed', 'expired', 'cancelled'].includes(payment.status)) {

return { success: false, payment };

}

// Attendre 30 secondes avant la prochaine vérification

await new Promise(resolve => setTimeout(resolve, 30000));

}

return { success: false, timeout: true };

}

3. Idempotence

Évitez les doubles paiements avec une clé d'idempotence :

const payment = await simiz.payments.create({

amount: 5000,

// ... autres paramètres

}, {

idempotencyKey: order-${orderId}-attempt-${attemptNumber}

});

Tests en Sandbox

Le mode Sandbox permet de tester sans frais réels :

Numéros de test :
NuméroComportement
+237690000001Paiement réussi
+237690000002Solde insuffisant
+237690000003Timeout
+237690000004Refusé par l'utilisateur

Passage en production

Checklist avant le lancement :

  • [ ] Tests Sandbox complets
  • [ ] Webhooks configurés et testés
  • [ ] Gestion des erreurs implémentée
  • [ ] Emails de confirmation configurés
  • [ ] Logs de transactions activés
  • [ ] Clés Production générées
  • [ ] Variable sandbox: false

Conclusion

L'intégration d'Orange Money avec Simiz prend quelques heures au lieu de plusieurs mois. Notre API unifiée vous permet d'accepter Orange Money et MTN MoMo avec le même code.

Prêt à commencer ? Créez votre compte gratuit et recevez vos premiers paiements Orange Money aujourd'hui.
Besoin d'aide ? Notre équipe technique est disponible à developer@simiz.io
Partager cet article
J

Jean-Pierre Mbarga

Lead Developer

Passionné par les technologies financières et l'inclusion financière en Afrique. Contribue régulièrement au blog Simiz sur les sujets liés aux paiements Mobile Money.

Articles similaires