MonCash, lancé par Digicel, est devenu le moyen de paiement numérique dominant en Haïti avec des millions d'utilisateurs actifs. Pour les développeurs et marchands qui souhaitent accepter des paiements en ligne, comprendre son écosystème API est indispensable.
Comment fonctionne l'intégration MonCash ?
Il n'existe pas d'API MonCash officielle ouverte au grand public. Les marchands passent par des plateformes d'intégration tierces comme MonCashConnect qui fournissent une infrastructure API REST, des clés sécurisées et des webhooks signés. Ces plateformes font le pont entre votre application et les services de paiement MonCash via des canaux autorisés.
Les composantes d'une intégration MonCash
- Clé API secrète (sk_proj_…) — authentifie vos requêtes serveur
- Clé publique (pk_proj_…) — utilisable côté client pour initialiser un paiement
- Endpoint POST /pay-create — crée une session de paiement et retourne un lien MonCash
- Webhook signé HMAC-SHA256 — notifie votre serveur quand le paiement est complété
- Dashboard marchand — suivi des transactions, retraits, clés API
Créer une session de paiement
Le flux standard se résume à trois étapes : votre backend appelle POST /pay-create avec le montant et un ID de commande unique, l'API retourne une URL de paiement MonCash, vous redirigez l'utilisateur vers cette URL. MonCash prend en charge la transaction et notifie votre webhook une fois le paiement confirmé.
// Initialiser un paiement MonCash
const response = await fetch("https://hvlmeoqyxaguzcujpmit.supabase.co/functions/v1/pay-create", {
method: "POST",
headers: {
"Authorization": "Bearer sk_proj_votre_cle_secrete",
"Content-Type": "application/json",
},
body: JSON.stringify({
amount: 500, // montant en HTG
orderId: "CMD-00123", // identifiant unique de commande
description: "Achat boutique",
returnUrl: "https://votresite.com/success",
cancelUrl: "https://votresite.com/cancel",
}),
});
const { paymentUrl } = await response.json();
// Rediriger l'utilisateur vers paymentUrlRecevoir et vérifier les webhooks
Quand le paiement est confirmé, MonCashConnect envoie une requête POST à votre URL webhook avec les détails de la transaction. Chaque requête est signée avec HMAC-SHA256 en utilisant votre secret webhook. Vous devez toujours vérifier cette signature avant de traiter le paiement — ne faites jamais confiance à un webhook non vérifié.
import crypto from "crypto";
export function verifyWebhook(rawBody, signature, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}Meilleures pratiques de sécurité
- Ne stockez jamais votre clé secrète côté client (navigateur, application mobile)
- Toujours vérifier la signature HMAC de chaque webhook reçu
- Utiliser des orderId uniques et vérifier l'idempotence pour éviter les doubles crédits
- Mettre en place un timeout sur les paiements en attente (expirez après 30 minutes)
- Logger toutes les transactions et webhook pour faciliter les audits
Environnement de test
MonCashConnect fournit un environnement sandbox complet pour tester vos intégrations sans toucher à de vrais fonds. Utilisez des clés sk_test_… et pk_test_… en développement. Vous pouvez simuler des paiements réussis, des échecs et des remboursements directement depuis votre dashboard de développement.
Prêt à intégrer MonCash ? Créez votre compte MonCashConnect et obtenez vos clés API en moins de 2 minutes — sans carte bancaire.
Créer mon compte gratuitement →