Cours / FormationVente d'accès · Webhooks · LMS · Frais scolaires

MonCashConnect pour cours en ligne et formations

Vous vendez des cours, des formations professionnelles, des préparations concours ou des accès à une école en ligne à un public haïtien. Vos élèves veulent payer en HTG par MonCash, et vous voulez débloquer l'accès au contenu uniquement après confirmation fiable. MonCashConnect rend ça simple et auditable.

Le problème

  • ·Les LMS internationales (Thinkific, Teachable, Kajabi) ne supportent pas MonCash. Vous perdez la majorité des élèves haïtiens qui n'ont pas de carte internationale.
  • ·Accepter MonCash via numéro perso et débloquer manuellement chaque inscription ne scale pas : oublis, retards, erreurs de saisie.
  • ·Vous voulez verrouiller le contenu (vidéos, PDF, accès Discord) tant que le paiement n'est pas confirmé — sans webhook fiable, c'est impossible à automatiser sereinement.
  • ·Pour les frais trimestriels d'une école, sans système d'évènement signé, vous faites du suivi sur Excel — fragile dès qu'il y a plus de quelques dizaines d'élèves.

Comment MonCashConnect aide

Paiement signé par inscription : reference_id = student:cours:cohorte vous laisse retrouver précisément qui a payé quoi.

Gating sur webhook payment.completed : votre backend ne débloque l'accès au contenu qu'après réception et vérification de la signature HMAC-SHA256.

Intégration LMS via API : sur payment.completed, vous appelez l'API admin de votre LMS (Thinkific, Teachable, ou votre LMS maison) pour inscrire automatiquement l'élève.

Cycles de frais scolaires : envoyez un lien par trimestre à chaque élève, suivez les retards depuis le dashboard.

Sandbox pour tester le flow d'inscription end-to-end sans utiliser de vraie monnaie.

Flow : inscription à une formation à 8 000 HTG

  1. 1. Page de cours sur votre site. L'élève remplit nom + email + numéro MonCash, choisit la cohorte « janvier-2026 ».
  2. 2. Création du paiement. Votre backend insère un enrollment status: "pending" et crée un paiement MCC avec reference_id: "enr_001284", amount: 8000.
  3. 3. Redirection MonCash. L'élève confirme sur son téléphone et paie 8 000 HTG.
  4. 4. Webhook reçu. Votre service marque l'enrollment status: "active", ajoute l'élève dans la cohorte, envoie un email de bienvenue avec les identifiants ou lien Discord.
  5. 5. Accès au contenu. Toutes les requêtes de l'élève sur les leçons vérifient enrollment.status === "active". Si pending, on redirige vers la page de paiement. Si active, on sert le contenu.

Le middleware d'accès côté serveur (Node, équivalent dans toutes les stacks) :

async function requireEnrolled(req, res, next) {
  const enr = await db.enrollments.findOne({
    studentId: req.user.id,
    courseId:  req.params.courseId,
  });
  if (!enr || enr.status !== "active") {
    return res.status(402).json({ error: "payment_required" });
  }
  next();
}

app.get("/courses/:courseId/lessons/:id", requireEnrolled, serveLesson);
Le webhook est la seule source de vérité pour passer en active. Ne flippez jamais le statut depuis la return_url — elle est manipulable par l'utilisateur.

Quel plan vous convient

Pour une école ou un institut de formation, le besoin clé est d'avoir plusieurs environnements (prod / staging / dev pour tester un nouveau cours) et un retrait quotidien confortable.

Institut ou formateur avec plusieurs cohortes actives

Quelques dizaines à centaines d'élèves, cycles trimestriels ou ponctuels, besoin d'un staging avant chaque lancement.

Pro — 2 500 HTG / mois

Pro autorise 3 projets et 15 000 HTG/jour de retraits. Pour un seul cours qui démarre, Free peut suffire au début. Si vous opérez plusieurs écoles ou voulez les retraits illimités, passez à Business (5 000 HTG/mois, 5 projets).

Détails sur la page Tarifs.

FAQ — Cours en ligne

J'utilise déjà Thinkific / Teachable / une LMS classique. Ça marche ?+
Ces LMS n'ont pas de plugin MonCash natif. Le pattern qui marche : vous facturez côté MCC, puis sur payment.completed votre webhook appelle l'API de la LMS pour inscrire l'élève. C'est quelques heures de code si la LMS expose une API admin (Thinkific, Teachable et la plupart le font). Sans API, vous gérez l'inscription manuellement depuis le webhook.
Comment je bloque l'accès tant que le paiement n'est pas confirmé ?+
Vous gardez côté votre base un statut enrollment.status = pending tant que le webhook payment.completed n'a pas été reçu pour le reference_id correspondant. Tous vos endpoints d'accès au contenu lisent ce statut. Tant qu'il est pending, on renvoie 402 (ou redirige vers la page de paiement). Une fois active, le contenu est débloqué.
Et pour les abonnements mensuels à une école en ligne ?+
Même pattern que dans le use case SaaS : à chaque cycle, vous renvoyez un lien à l'élève qui doit confirmer dans son MonCash. MonCash n'autorise pas le débit silencieux. Pour des frais scolaires trimestriels ou annuels, c'est en pratique très acceptable — peu de cycles.
Peut-on offrir des remises ou des codes promo ?+
Oui mais c'est votre code qui applique la remise avant de créer le paiement. Vous validez le code promo côté votre serveur, vous calculez le montant réduit, et vous passez ce montant à l'API MCC. Le gateway ne connaît pas la notion de code promo — il facture juste le montant que vous lui transmettez.
Comment je gère un élève qui demande un remboursement ?+
Vous initiez un transfert depuis votre dashboard vers son numéro MonCash. Les frais réseau Digicel (5 %) s'appliquent. Côté votre LMS, vous repassez l'enrollment en cancelled et coupez l'accès au contenu.
Quel plan pour un institut avec 200 élèves inscrits ?+
Pro (2 500 HTG/mois) suffit dans la majorité des cas : 3 projets pour isoler prod / staging / dev, retraits à 15 000 HTG/jour. Si vous voulez vider votre solde quotidiennement sans plafond ou si vous opérez plusieurs écoles distinctes, Business (5 000 HTG/mois) est le palier.
MonCashConnect est une plateforme indépendante. KYC marchand requis avant la production — pour un formateur indépendant, c'est généralement la pièce d'identité ; pour une institution, ajoutez les statuts. Pendant le KYC, vous pouvez déjà construire et tester en sandbox.