Overview
En Haïti, plus de 80 % de la population n’a pas accès aux services bancaires traditionnels. Pourtant, le pays dispose d’un portefeuille mobile qui a su s’imposer comme un véritable pilier de l’économie : MonCash, opéré par Digicel Haïti. Avec 2 millions d’utilisateurs et plus de 4 000 agents à travers le pays, MonCash est bien plus qu’une simple application de paiement — c’est un facilitateur d’inclusion financière. Lancé à l’origine sous le nom de TchoTcho Mobile après le séisme de 2010, ce service est aujourd’hui la pierre angulaire de l’économie haïtienne.
« MonCash is a mobile wallet that facilitates reliable, safe and convenient financial transactions to reduce the distance between people regardless of their location in Haiti. »
C’est dans ce contexte que j’ai développé moncash, un SDK Node.js open‑source permettant aux développeurs JavaScript d’intégrer facilement l’API de paiement MonCash dans leurs applications web. L’objectif ? Rendre l’économie numérique haïtienne plus accessible aux développeurs, aux commerçants et aux entrepreneurs.
Crédit : © Digicel Haïti / MonCash – moncashdfs.com
The Challenge
Un écosystème de paiement en pleine croissance, mais difficile d’accès
L’économie haïtienne repose en grande partie sur les transactions en liquide. Pourtant, avec 2 millions d’utilisateurs actifs, MonCash représente une opportunité immense pour les commerçants et les entrepreneurs qui souhaitent digitaliser leurs activités. Le gouvernement lui‑même utilise la plateforme pour verser des aides financières, comme en octobre 2025, où 21 549 parents ont reçu des fonds via MonCash dans le cadre du programme de rentrée scolaire.
Le défi était le suivant :
- L’API MonCash existe — Digicel met à disposition une API REST permettant d’accepter des paiements en ligne. Mais cette API est conçue pour être utilisée « brute », sans framework spécifique.
- Les développeurs haïtiens utilisent Node.js — JavaScript et Node.js sont des technologies de plus en plus populaires dans l’écosystème tech haïtien, notamment pour les applications full‑stack et les API. Pourtant, aucune solution prête à l’emploi n’existait pour intégrer MonCash dans un projet Node.js.
- Les intégrations répétitives — Chaque développeur qui voulait accepter des paiements MonCash devait réécrire la même logique : authentification OAuth2, création de paiement, vérification, capture. Une perte de temps considérable.
- Un besoin de standardisation — Pour accélérer l’adoption du paiement mobile en Haïti, il fallait un SDK standardisé, bien documenté et facile à utiliser.
Les spécificités techniques
L’API MonCash repose sur un mécanisme d’authentification OAuth2 via clientId et clientSecret. Les transactions se font exclusivement en gourdes haïtiennes (HTG). Le flux de paiement typique comprend :
- La création d’un paiement avec un montant et un
orderId - La redirection de l’utilisateur vers la page de paiement MonCash
- La vérification et la capture du paiement via un
transactionIdou unorderId
Mon défi était de transformer ce flux en une expérience « plug‑and‑play » pour les développeurs Node.js, en m’inspirant des meilleures pratiques observées dans des SDK matures comme celui de Stripe.
Our Approach
Approche
La vision : un SDK Node.js natif, inspiré de Stripe
J’ai conçu moncash comme un module Node.js réutilisable, installable via npm et configurable en quelques lignes de code. L’approche s’articulait autour de plusieurs piliers :
1. Simplicité d’installation et de configuration
# Installation
npm install --save moncash
# Configuration
const Moncash = require('moncash');
const moncash = new Moncash({
mode: 'sandbox', // ou 'live'
clientId: 'VOTRE_CLIENT_ID',
clientSecret: 'VOTRE_SECRET_KEY'
});[reference:3]
Le SDK suit les bonnes pratiques Node.js : il charge les credentials depuis les variables d’environnement et ne les hardcode jamais.
2. Une API fluide et intuitive, inspirée de Stripe
Le SDK expose une interface orientée objet, avec des méthodes claires pour chaque opération :
// Créer un paiement
moncash.payment.create({
amount: 500,
orderId: 'ORDER-001'
}, (err, payment) => {
if (err) {
console.log(err.type);
return;
}
const paymentURI = moncash.payment.redirectUri(payment);
// Rediriger l'utilisateur vers paymentURI
});
3. Fonctionnalités complètes
Le SDK couvre l’intégralité du flux de paiement MonCash :
- Create payment — Création d’un paiement avec
moncash.payment.create()et génération de l’URL de redirection avecmoncash.payment.redirectUri() - Capture payment — Vérification et capture d’un paiement par
orderIdoutransactionId - Gestion des erreurs — Une liste d’erreurs standardisée via
Moncash.errorspour un debugging simplifié
Note : La fonctionnalité de transfert de fonds (moncash.transfert.create) est actuellement en test et n’est pas encore supportée en production.
4. Une approche « minimaliste » des dépendances
L’un des points forts de ce SDK est sa légèreté. Contrairement à de nombreux packages npm qui accumulent des dépendances, moncash a été conçu avec une philosophie « zero‑dependency » autant que possible. Cela réduit les risques de sécurité, les conflits de versions et la taille du node_modules.
5. Documentation et exemples
J’ai mis l’accent sur une documentation claire, avec des exemples de code prêts à l’emploi, pour que les développeurs haïtiens puissent intégrer MonCash en quelques minutes.
Ce projet s’inscrit dans une démarche plus large de digitalisation de l’économie haïtienne. En tant que consultant en stratégie, systèmes et croissance, j’accompagne les entreprises haïtiennes dans leur transformation numérique. Le SDK moncash est un outil au service de cet objectif.
« I help Haitian companies incorporate, digitize, and scale. Legal registration, digital transformation, and growth marketing — one partner, end‑to‑end. »
Le SDK est publié sur npm, ce qui le rend accessible à l’ensemble de la communauté des développeurs JavaScript dans le monde, et bien sûr en Haïti.

Crédit : Freedy Meritus – freedymeritus.com
The Results
Un outil adopté par la communauté
moncash est aujourd’hui disponible sur npm et permet à tout développeur Node.js d’intégrer MonCash en quelques minutes. Les résultats sont concrets :
- Réduction du temps d’intégration : Ce qui prenait plusieurs jours de développement est désormais réalisable en moins d’une heure.
- Standardisation : Les intégrations MonCash suivent désormais les bonnes pratiques Node.js.
- Open‑source : Le code est accessible, modifiable et améliorable par la communauté.
- Légèreté : Grâce à une approche minimaliste des dépendances, le SDK est rapide à installer et sécurisé.
Un impact pour l’écosystème numérique haïtien
Avec 2 millions d’utilisateurs MonCash et plus de 4 000 agents à travers Haïti, le potentiel de ce SDK est immense. Il permet :
- Aux commerçants d’accepter des paiements en ligne sans infrastructure bancaire complexe.
- Aux startups d’intégrer le paiement mobile dans leurs applications.
- Aux développeurs de se concentrer sur leur cœur de métier plutôt que sur l’intégration d’API.
Le SDK s’inscrit dans une vision plus large : celle d’un écosystème numérique haïtien où les outils technologiques sont accessibles, documentés et adaptés aux réalités locales.
Perspectives
Le développement de moncash n’est qu’une étape. Les prochaines évolutions pourraient inclure :
- Le support complet des transferts de fonds une fois l’API stabilisée par Digicel
- Le support de webhooks pour une meilleure intégration
- L’intégration avec des frameworks comme Next.js ou NestJS
- Une version TypeScript pour une meilleure expérience de développement
Comparaison : moncash (Node.js) vs django‑moncash
Les deux SDK couvrent le cœur de l’API MonCash, mais ils présentent des différences notables liées aux écosystèmes respectifs :
| Fonctionnalité | moncash (Node.js) | django‑moncash |
|---|---|---|
| Authentification | OAuth2 géré en interne | OAuth2 géré en interne |
| Création de paiement | payment.create() |
init_payment() |
| Redirection | payment.redirectUri() |
URL générée automatiquement |
| Vérification / Capture | capture.getByTransactionId() / capture.getByOrderId() |
verify_payment() |
| Transferts de fonds | ❌ Non supporté (en test) | ❌ Non supporté |
| Gestion des erreurs | Moncash.errors |
Exceptions Python standard |
| Approche | Orientée objet, inspirée de Stripe | Fonctionnelle (vues Django) |
| Dépendances | Minimalistes (quasi zero‑dependency) | Dépend de Django |
| Public cible | Développeurs Node.js / JavaScript | Développeurs Django / Python |
La version Node.js se distingue par son inspiration de l’architecture Stripe, ce qui la rend familière pour les développeurs ayant déjà utilisé ce SDK. Elle mise sur une légèreté assumée et une approche orientée objet. La version Django, quant à elle, s’intègre nativement dans l’écosystème Django et bénéficie de la robustesse du framework.
Crédits et sources
| Élément | Source |
|---|---|
| Logo et marque MonCash | © Digicel Haïti / MonCash — moncashdfs.com |
| Données utilisateurs MonCash (2M, 4 000+ agents) | Hope Research Group, Haiti Consumer Trends 2025 |
| Programme gouvernemental FAES (octobre 2025) | Gouvernement de la République d’Haïti |
| Historique MonCash / TchoTcho Mobile | Transfi, Haiti’s Payment Rails |
| Photo et biographie Freedy Meritus | freedymeritus.com |
| Documentation technique moncash (npm) | npmjs.com/package/moncash |
| API MonCash — Documentation développeur | sandbox.moncashbutton.digicelgroup.com |
Ce cas d’étude a été rédigé dans le cadre de mon portfolio professionnel. Toutes les informations techniques sont basées sur la documentation officielle et l’expérience de développement du SDK moncash.