Sites Web14 min de lecture

Intégration API Orange Money Web Payment : guide technique 2026

Mohamed Bah·Fondateur, Kolonell
10 juin 2026
Partager :
Intégration API Orange Money Web Payment : guide technique 2026

Intégration API Orange Money Web Payment : guide technique 2026

Sites Web

Pourquoi Orange Money Web Payment domine au Sénégal

Orange Money concentre la majorité des paiements mobiles au Sénégal. Pour un site e-commerce ou un service en ligne, intégrer l'API Web Payment (WebPay) est souvent la première brique de monétisation. Ce guide couvre le flow réel : obtention des clés, génération du token d'accès, initiation d'un paiement, redirection du client, puis vérification du statut.

L'API repose sur deux appels principaux : un appel OAuth pour obtenir un jeton d'accès, puis un appel d'initiation qui renvoie une URL de paiement. Le client est redirigé vers cette URL, paie depuis son application Orange Money ou par code USSD, puis revient sur votre site.

Onboarding marchand : les étapes

L'accès production demande une validation marchande. Comptez 5 à 15 jours ouvrés selon la complétude du dossier.

ÉtapeActionLivrableDélai indicatif
1Créer un compte sur le portail développeur OrangeCompte validé1 jour
2Soumettre le dossier KYC entreprise (RCCM, NINEA)Dossier accepté2 à 5 jours
3Recevoir les clés sandboxclient_id + client_secret testimmédiat
4Intégrer et tester en sandboxTransactions test réussies2 à 4 jours
5Demander le passage en productionClés prod activées3 à 7 jours

Clés à sécuriser

Vous recevez un couple client_id et client_secret. Ces valeurs ne doivent jamais apparaître côté navigateur : tout appel à l'API passe par votre serveur (backend). Stockez-les en variables d'environnement, jamais dans le code source versionné.

Le flow de paiement en 5 temps

  • Le serveur appelle POST /oauth/token pour obtenir un access_token (valable environ 1 heure).
  • Le serveur appelle POST /webpayment avec le montant et les URL de retour pour obtenir une payment_url et un token de transaction.
  • Le navigateur redirige le client vers là payment_url.
  • Le client paie ; Orange redirige vers vôtre return_url (et notifie éventuellement vôtre notif_url).
  • Le serveur vérifie le statut via le pay_token avant de valider la commande.

Règle d'or : ne validez jamais une commande sur la seule redirection navigateur. Confirmez toujours côté serveur le statut SUCCESS.

Paramètres de la requête d'initiation

L'appel POST /webpayment attend un corps JSON. Voici les champs clés.

ParamètreTypeObligatoireDescription
merchant_keychaîneouiClé marchand fournie à l'onboarding
currencychaîneouiDevise, OUV en sandbox, XOF en prod
order_idchaîneouiIdentifiant unique de commande côté marchand
amountentierouiMontant en FCFA, sans décimales
return_urlurlouiPage de retour après paiement réussi
cancel_urlurlouiPage de retour si annulation
notif_urlurlouiURL serveur à serveur pour notification de statut
langchaînenonLangue de la page de paiement, fr ou en
référencechaînenonRéférence libre affichée au client

Réponse attendue

La réponse contient un pay_token, une payment_url et un notif_token. Conservez l'order_id et le pay_token en base : ils servent à réconcilier le paiement.

Champ retournéTypeUsage
pay_tokenchaîneVérification du statut de la transaction
payment_urlurlURL de redirection du client
notif_tokenchaîneJeton inclus dans la notification serveur

Environnements test et production

Les deux environnements ont des URL de base et des devises différentes. Ne mélangez jamais des clés sandbox avec l'URL de prod.

ÉlémentSandboxProduction
DeviseOUVXOF
MontantsFictifs, non débitésReels, débités
Numéro de testFourni dans la consoleNuméro client réel
Validation marchandeNon requiseRequise
Limite de débitAucunePlafonds Orange Money

Test sans dépenser

Besoin d'un site web professionnel ?

Kolonell crée des sites web qui attirent des clients, optimisés pour le marché sénégalais. Devis gratuit en 2 minutes.

Vous préférez qu’on vous rappelle ?

Laissez votre WhatsApp, un expert Kolonell vous recontacte sous 24h ouvrées. Gratuit et sans engagement.

Vous êtes :

En sandbox, Orange fournit un numéro et un code PIN de test qui simulent un paiement réussi ou échoue. Validez au minimum trois scénarios : succès, annulation utilisateur, et expiration du token.

Codes d'erreur à gérer

Votre backend doit traiter explicitement les erreurs. Un mapping clair évite les commandes fantômes.

Code / statutSignificationAction recommandée
INITIATEDPaiement crée, en attenteAfficher l'attente, ne pas valider
PENDINGClient en cours de paiementRelancer la vérification après délai
SUCCESSPaiement confirméValider la commande
FAILEDPaiement échouéProposer un nouvel essai
EXPIREDToken expiréRéinitier une transaction
401Token OAuth invalide ou expiréRégénérer l'access_token
400Paramètre manquant ou invalideLogger et corriger le corps de requête

Exemple de bout en bout

Cas concret : une boutique vend un sac à 25 000 FCFA. Le backend génère un order_id KOL-2026-0421, appelle POST /oauth/token, reçoit un access_token, puis appelle POST /webpayment avec amount 25000, currency XOF, return_url vers la page de confirmation et notif_url vers /api/orange/notif. Orange renvoie une payment_url. Le client est redirigé, paie, revient sur la page de confirmation. En parallèle, Orange appelle /api/orange/notif avec le statut SUCCESS et le notif_token. Le backend vérifie le notif_token, contrôle le statut via le pay_token, puis passe la commande de PENDING à PAID. Total côté serveur : deux appels sortants et une notification entrante.

Sécurité et bonnes pratiques

  • Idempotence : un même order_id ne doit jamais créer deux paiements validés.
  • Vérification serveur obligatoire avant toute livraison ou activation.
  • HTTPS strict sur toutes les URL de retour et de notification.
  • Journalisation de chaque transition de statut pour le support.
  • Timeout côté backend : si aucune notification après 15 minutes, marquer EXPIRED.

FAQ

Peut-on intégrer Orange Money sans serveur backend ?

Non. Le client_secret et la génération du token doivent rester côté serveur. Une intégration 100 pour cent front exposerait vos clés et serait rejetée en production.

Quelle devise utiliser en sandbox ?

La devise OUV en sandbox, et XOF en production. Inverser les deux est l'erreur la plus fréquente lors du passage en prod.

Faut-il attendre la notif_url ou la redirection suffit ?

La notif_url serveur à serveur fait foi. La redirection navigateur peut être perdue si le client ferme l'onglet. Validez toujours via la notification et la vérification de statut.

Combien de temps est valable l'access_token ?

Environ une heure. Générez-le à la demande et mettez-le en cache côté serveur jusqu'à expiration plutôt que de le régénérer à chaque requête.

Comment tester un échec de paiement ?

La console sandbox fournit un PIN dédié qui force un statut FAILED. Testez ce scénario pour valider votre gestion d'erreur avant la prod.

Discutons de votre projet. Kolonell intègre Orange Money, Wave et Stripe sur des sites e-commerce rapides et sécurisés au Sénégal. WhatsApp +221 77 596 93 33.

Tags :#orange money#api paiement#integration#e-commerce#webpay#senegal#backend#fintech
Partager :

Mohamed Bah

Fondateur, Kolonell

Passionné par le digital et l'entrepreneuriat en Afrique, Mohamed accompagne les entreprises sénégalaises dans leur transformation digitale depuis 2020. Fondateur de Kolonell, il croit que chaque PME mérite une présence en ligne professionnelle et accessible.