Paynex
Une application Android qui confirme automatiquement les paiements mobiles reçus, et une API pour qu’un site vérifie un paiement en une seule requête.
- Rôle
- Conception produit, application Android, API, base de données, mise en production
- Technologies
- Kotlin · Android · PostgreSQL (Neon) · API HTTP · GitHub Actions
- État
- En ligne



01Contexte
En Haïti, l’essentiel des paiements en ligne passe par le mobile money : NatCash et MonCash. Pour un petit marchand ou un développeur indépendant, il n’existe pas de moyen simple et abordable de savoir, automatiquement, qu’un client a bien payé.
02Problème
Sans confirmation automatique, chaque dépôt est vérifié à la main : le client envoie une capture d’écran, quelqu’un ouvre son téléphone, compare, valide. C’est lent, ça ne tient pas la charge, et c’est une porte ouverte aux fausses captures.
03Produit
Paynex transforme le téléphone du marchand en terminal de confirmation. L’application lit les SMS de confirmation des opérateurs, les reconnaît, et les met à disposition d’une API.
Côté site, l’intégration tient en une requête : le montant exact et le numéro de l’expéditeur. La réponse est PAID ou RETRY — jamais « en attente ». Paynex couvre NatCash, MonCash et l’USDT sur Polygon.
04Expérience
L’application est volontairement courte : connexion par téléphone et code, activation unique, puis quatre onglets — Accueil, Dépôts, Projets, Réglages.
Android tue les applications en arrière-plan sur beaucoup de téléphones d’entrée de gamme. L’écran de premier lancement demande donc les autorisations une par une, en expliquant pourquoi, et l’accueil signale clairement quand une action est requise.
05Décisions de design
- Interface sombre, dense et lisible, pensée pour être consultée vite sur un petit écran.
- Un design system interne (couleurs, boutons, bannières, états vides, états d’erreur) garantit que chaque écran gère chargement, succès, erreur et vide.
- Les numéros de téléphone sont masqués partout dans l’interface.
06Ingénierie
Application Android native en Kotlin, base PostgreSQL, API HTTP. Les règles d’intégrité financière vivent dans la base elle-même : un SMS ne peut créditer qu’un seul dépôt, une référence marchande ne peut être utilisée qu’une fois, un paiement consommé ne peut pas être rouvert.
Les appels sont idempotents : rejouer une requête renvoie le même résultat, sans double crédit. Chaque appareil signe ses requêtes. En cas de doute, la réponse est RETRY — jamais un faux PAID.
Chaque version passe par une intégration continue : tests unitaires, tests SQL, captures d’écran automatiques de tous les écrans, puis publication de l’APK.
07Défis
- Reconnaître de vrais SMS d’opérateurs, en français et en créole, sans jamais se laisser tromper par un message qui y ressemble.
- Rester vivant en arrière-plan sur des téléphones qui ferment agressivement les applications.
- Tenir la promesse « 30 secondes maximum » entre le paiement du client et la réponse donnée au site.
08Résultat
Paynex est en production. Il confirme les dépôts de FedTopUp, et son API est ouverte aux développeurs qui veulent accepter NatCash, MonCash ou l’USDT sans bâtir leur propre système.
Galerie
Écrans réels de l’application, générés par la suite de tests avec des données de démonstration.
Connexion Activation unique Autorisations Accueil Dépôts Projets et clés API