MonCashConnect pour SaaS en Haïti
Vous vendez un logiciel ou un service en abonnement à des clients haïtiens qui paient en HTG. MonCash n'offre pas de débit silencieux mensuel comme Stripe, mais MonCashConnect rend le cycle de facturation viable : renouvellement par lien signé, webhook fiable, statuts d'abonnement cohérents, plusieurs environnements isolés.
Le problème
Les SaaS qui veulent vendre en HTG doivent composer avec un wallet qui n'a pas été conçu pour la facturation récurrente :
- ·MonCash ne permet pas, à ce jour, un débit silencieux périodique. Chaque renouvellement demande une confirmation explicite de l'utilisateur dans son app.
- ·Sans dashboard de statut clair, vous ne savez pas qui a payé, qui a sauté un cycle, qui est en past_due. Vous finissez à exporter des screenshots SMS pour faire votre compta.
- ·Tester un changement de plan ou un upgrade pro-rata sans casser la facturation réelle nécessite un environnement séparé — ce que le portail MonCash officiel n'expose pas.
- ·La logique de dunning (relances avant suspension) demande un évènement fiable. Un lien web simple n'est pas suffisant.
Comment MonCashConnect aide
MonCashConnect ne magie pas un débit silencieux MonCash — personne ne le peut. En revanche, voici ce qu'on couvre pour rendre le cycle d'abonnement vivable :
Création de paiement par cycle : à chaque échéance, vous créez un paiement avec reference_id = subscription_id:cycle_n et envoyez le lien à l'utilisateur (email, SMS, in-app).
Webhook payment.completed signé HMAC-SHA256 : votre service reçoit l'évènement avec votre reference_id et flippe l'abonnement en active jusqu'au prochain cycle.
Pas de paiement reçu en X jours → vous bascules en past_due et coupez l'accès. C'est votre logique de dunning, MCC vous fournit juste l'évènement source.
Plusieurs projets pour isoler prod, staging et dev — chaque projet a son ledger, ses clés et ses webhooks séparés.
Dashboard temps réel avec filtres par statut, par reference_id, export CSV pour réconcilier avec votre base d'abonnés.
Cycle d'un abonnement mensuel à 1 200 HTG
- J-3 : envoi du lien de renouvellement. Votre cron lit les abonnements dont
next_billing_atapproche. Pour chacun, vous créez un paiementreference_id: "sub_8821:cycle_14", vous envoyez l'URL au client par email ou notification in-app. - J-0 : le client paie depuis son MonCash. Il ouvre le lien, confirme dans son app, le wallet débite 1 200 HTG.
- Webhook reçu :
payment.completedavec la signature et votre reference_id. Vous mettezsubscription.status = "active",next_billing_at = now + 30j, vous envoyez un reçu. - J+5 sans paiement : votre cron passe l'abonnement en
past_dueet limite l'accès aux fonctionnalités premium. Vous relancez par email. - J+10 toujours rien : l'abonnement passe en
canceled. Si l'utilisateur revient, il recommence un cycle from scratch — vous re-créez un paiement neuf.
Côté webhook handler, le snippet critique :
// POST /webhooks/moncash
app.post("/webhooks/moncash", express.raw({ type: "application/json" }), async (req, res) => {
let event;
try {
event = mcc.webhooks.constructEvent(
req.body, // bytes bruts, AVANT JSON.parse
req.headers["x-mcc-signature"],
req.headers["x-mcc-timestamp"],
process.env.MCC_WEBHOOK_SECRET,
);
} catch {
return res.status(400).send("invalid signature");
}
if (event.event === "payment.completed") {
const [subId, cycle] = event.reference_id.split(":");
await renewSubscription(subId, cycle); // idempotent
}
res.send("OK");
});renewSubscription idempotent — un même évènement peut être livré plusieurs fois. Comparez le cycle reçu au dernier cycle enregistré pour ignorer les doublons.Quel plan vous convient
Un SaaS bénéficie surtout d'environnements isolés (prod, staging, dev local) et d'un plafond suffisant pour cashout, plus que d'un nombre élevé de transactions gratuites.
SaaS à abonnements en HTG
Quelques dizaines à quelques centaines d'abonnés mensuels, un seul produit, besoin de staging séparé.
Pro autorise 3 projets — typiquement prod, staging, dev local — et un retrait de 15 000 HTG/jour, ce qui couvre un cashout hebdomadaire confortable. Passez à Business (5 000 HTG/mois, 5 projets, retraits illimités) si vous opérez plusieurs produits SaaS distincts ou si vous voulez vider votre solde quotidiennement sans plafond.
Détails complets sur la page Tarifs.
FAQ — SaaS
MonCash supporte-t-il vraiment les paiements récurrents automatiques ?+
Comment je gère un client qui ne paie pas son renouvellement ?+
Puis-je facturer pro-rata sur un changement de plan ?+
Comment je différencie mes environnements (staging vs prod) ?+
Le webhook est-il fiable ? Que se passe-t-il s'il rate ?+
Y a-t-il un coût caché en plus de mon abonnement MCC ?+
Lectures recommandées :