Étude de cas 05 · Paiements · Backend · Énergie
ÉnergiePay
Transforme les SMS de paiement Mobile Money en recharges d'électricité, automatiquement et avec traçabilité.
- Rôle
- Conception et développement full-stack
- Catégorie
- Paiements · Backend · Énergie
- Stack
- Laravel · React · TypeScript


01 — Contexte
Pour un exploitant d'électricité prépayée, transformer un paiement Mobile Money en crédit demandait de rapprocher le montant, la référence client et le compte du compteur, malgré des références mal saisies et des messages reçus plusieurs fois.
02 — Problème
Références mal saisies, SMS reçus en double, API qui coupe : chaque paiement demandait une vérification à la main.
03 — Solution
La plateforme reçoit les SMS de paiement par API, en extrait les informations et normalise les références. Selon le montant, elle comptabilise une tranche d'installation ou demande une recharge à SparkMeter, enregistre la transaction et envoie une confirmation. Les gestionnaires suivent les opérations, les clients et les anomalies depuis une interface dédiée.
04 — Fonctionnalités
Paiements automatiques
Montant, payeur, référence et transaction extraits du SMS, recharge transmise.
Références normalisées
Nettoyage, remise en ordre et correspondance avec les sites connus.
Reprise des échecs
Vérification du solde après une erreur d'API et nouvelles tentatives planifiées.
Frais d'installation
Classement par seuil, suivi des tranches et exemptions individuelles.
Consultation du solde
Depuis le web, par SMS ou via une API protégée.
Alertes et exports
Alertes de solde faible et exports Excel filtrés.
05 — En images

SMS de paiement reçus et leur traitement 
Suivi des frais d'installation par client
06 — Architecture
- Passerelle SMSMobile Money
- API Laravelréception · parsing
- Services métierpaiements · références
- API SparkMeterrecharge du compteur
- Jobs · SMSconfirmations · alertes
Un backend Laravel commun sert l'interface de gestion React (via Inertia) et les API de réception.
Confirmations, synchronisations et relances sont des jobs ou listeners ; la base conserve chaque opération et son état pour permettre les reprises.
07 — Défis techniques
Défi
Interpréter des références saisies de façon irrégulière.
Solution
Service de parsing avec règles de nettoyage et de correspondance ; corrections journalisées avec leur motif.
Défi
Gérer un paiement dont la réponse API est incertaine.
Solution
Même identifiant externe réutilisé, contrôle de l'évolution du solde et reprise planifiée.
Défi
Reprendre un historique SQL existant.
Solution
Commande dédiée avec mode simulation, normalisation et contrôle des doublons.
08 — Mon intervention
- Architecture et règles de traitement des paiements
- Backend Laravel et interfaces React / TypeScript
- Modèle de données, migrations et index
- Intégration des API SparkMeter et SMS
- Tableaux de bord, historiques et exports
- Permissions, tests et pipeline de déploiement
09 — Stack
- Backend
- PHP 8, Laravel 10, jobs, événements, planificateur
- Frontend
- React 19, TypeScript, Inertia.js, Tailwind CSS, TanStack Table
- Données
- MySQL, Laravel Excel
- Intégrations
- API SparkMeter, API SMS
- Livraison
- PHPUnit, GitHub Actions, déploiement SSH
10 — Résultats
3
canaux de consultation du solde : web, SMS et API
0
double crédit après une coupure d'API, grâce à l'identifiant réutilisé