Ajouter votre propre frais sur les retraits
Vous tenez les soldes de vos utilisateurs et vous voulez prélever votre propre frais quand ils retirent. Voici comment le frais MonCashConnect est calculé, comment ajouter le vôtre, et le seul piège qui peut ramener votre marge à zéro.
Le principe
MonCashConnect ne connaît pas vos utilisateurs. C'est vous qui tenez leurs soldes dans votre propre base, et c'est vous qui décidez de ce que vous leur facturez. Il n'y a donc rien à configurer chez nous : votre frais s'applique au moment où vous débitez le solde de votre utilisateur, dans votre système.
Retraits : le frais MonCashConnect est en sus
Sur un retrait (payout-create), le destinataire reçoit exactement le amount que vous envoyez. Le frais de 5 % n'est pas retiré de ce montant : il est prélevé en plus sur votre solde MonCashConnect.
Ajouter votre frais
Exemple : vous voulez facturer 6 % à vos utilisateurs, MonCashConnect prend 5 %. Votre utilisateur veut recevoir 100 HTG.
Affichez à votre utilisateur les deux chiffres qui le concernent : ce qui sort de son solde (106) et ce qui arrive sur son téléphone (100).
Le piège de l'arrondi
| amount | frais MCC (5 %, vers le haut) | 6 % vers le bas | 6 % vers le haut |
|---|---|---|---|
| 100 | 5 | 6 → marge 1 | 6 → marge 1 |
| 110 | 6 | 6 → marge 0 | 7 → marge 1 |
| 150 | 8 | 9 → marge 1 | 9 → marge 1 |
| 1 000 | 50 | 60 → marge 10 | 60 → marge 10 |
Règle simple : arrondissez toujours votre frais vers le haut, comme le nôtre. Avec un taux supérieur au nôtre, votre marge ne peut alors jamais être négative.
Encaissements : c'est l'inverse
Pour l'argent que vous recevez (pay-create, dépôts), le frais réseau de 2,9 % est déduit de ce que paie le client : il paie 100, vous recevez 97. Seuls les retraits fonctionnent « en sus ». Ne mélangez pas les deux dans vos calculs.
MonCashConnect ne prend aucune commission : les 2,9 % et les 5 % sont les frais du réseau, transmis à l'identique.
Code
// Montants en HTG entiers. MCC_RATE = 0.05 (retrait), YOUR_RATE = votre taux.
const MCC_RATE = 0.05;
const YOUR_RATE = 0.06;
function withdrawalQuote(amount) {
if (!Number.isInteger(amount) || amount < 100) throw new Error('min 100 HTG, entier');
const mccFee = Math.ceil(amount * MCC_RATE); // prélevé sur VOTRE solde MCC
const yourFee = Math.ceil(amount * YOUR_RATE); // vers le haut, comme le nôtre
return {
receives: amount, // ce qui arrive sur le numéro MonCash
debitUser: amount + yourFee, // ce que vous retirez de son solde chez vous
mccDebit: amount + mccFee, // ce que MonCashConnect retire de votre solde
margin: yourFee - mccFee,
};
}
withdrawalQuote(100); // { receives: 100, debitUser: 106, mccDebit: 105, margin: 1 }
withdrawalQuote(110); // { receives: 110, debitUser: 117, mccDebit: 116, margin: 1 }Puis, côté serveur uniquement, POST /v1/payout-create avec amount = receives. La réponse vous renvoie fee_htg : comparez-le à votre mccFee pour vérifier vos comptes. Pour une app mobile, voir ce guide.
Checklist
amount = ce que l'utilisateur doit recevoir, entier, 100 HTG minimum
Votre frais est calculé et appliqué dans votre propre base, pas chez MonCashConnect
Votre frais est arrondi vers le haut (Math.ceil), comme celui de MonCashConnect
Votre solde MonCashConnect couvre amount + frais MonCashConnect
L'utilisateur voit ce qui sort de son solde ET ce qui arrive sur son téléphone
Vous comparez fee_htg de la réponse à votre calcul pour réconcilier