Table des matières
1. Démarrage
2. Rôles et accès
3. Créer et gérer les comptes
4. Approvisionnement
5. Dépôts d'argent réel (v3.14)
6. Commission
7. Codes OTP
8. API et intégrations
9. Sécurité
10. Dépannage
11. Contact
1. Démarrage
Ouvrez https://moselinepay.cloud et connectez-vous avec votre identifiant et mot de passe.
Si un code OTP vous est demandé, il arrive par SMS et par email (si votre compte a une adresse email).
Première connexion d'un compte : un PIN provisoire est généré — changez-le immédiatement via l'écran prévu. Sans ce changement, aucune opération n'est possible.
💡 Le tableau de bord (Dashboard) donne en un coup d'œil : utilisateurs actifs, volume total, transactions et avances en attente, plus le registre d'audit.
2. Rôles et accès
RĂ´le Ce que ce rĂ´le peut faire
admin (Super Admin)Pleins pouvoirs : comptes, crédits, commissions, verrouillage, clés API, kill switch des canaux de dépôt.
admin_limitedGestion des utilisateurs et des tickets uniquement. Ne peut pas créer d'admin, ni toucher à l'argent ni aux réglages.
superviseurLecture seule : surveille l'activité (dashboard, transactions, tickets) sans rien modifier.
comptable / comptable_chef / responsable_rhEspace entreprise : employés, paie, avances, coupons, bulletins.
employer / client / vendeurComptes opérationnels : solde, transferts, dépôts, épargne (le vendeur a un code POS).
⚠️ La sécurité est appliquée côté serveur : masquer un bouton ne suffit jamais à donner un droit.
3. Créer et gérer les comptes
Création
Onglet UTILISATEURS → « + AJOUT RAPIDE » ou le formulaire « CRÉER UN COMPTE ».
Renseignez : nom complet, identifiant (lettres, chiffres, -, _ — pas d'espace ni @), mot de passe (min. 6), rôle, téléphone et email .
Le champ Email est important : c'est lui qui reçoit les codes OTP (canal email, v3.13).
Le compte est créé avec un PIN provisoire : l'utilisateur doit le changer à sa première connexion.
Après une démonstration
Bouton ↺ RETOUR DÉMO (SOLDES → 0) : remet à zéro les soldes de tous les comptes demo.* et du compte admin, avec une écriture de compensation « RETOUR DEMO » dans les transactions — la comptabilité reste propre et traçable.
Le compte permanent comptable1 n'est pas touché par ce bouton.
4. Approvisionnement d'un compte
Bouton 💰 APPROVISIONNER (super admin uniquement) : crédite le solde FT d'un compte (ex. comptable d'entreprise pour les salaires).
Chaque approvisionnement est enregistré dans les transactions (référence ADM-…) et dans l'audit, avec un motif optionnel.
💡 Usage prévu en production : l'argent entre via un dépôt réel (section 5) sur le compte admin, qui approvisionne ensuite les comptables des entreprises.
5. Dépôts d'argent réel (v3.14)
Canal sécurisé pour la monnaie réelle (M-Pesa, Airtel Money, Orange Money, Afrimoney, banques, agrégateur). Règle d'or : on ne crédite jamais sur demande — uniquement sur confirmation du fournisseur signée.
Cycle d'un dépôt
POST /depots/initier → dépôt « EN ATTENTE » (référence DEM-…), aucun crédit. Plafonds : par opération et par jour/utilisateur.
Le client confirme le paiement sur son téléphone ; le fournisseur appelle POST /webhooks/depot/<canal> avec une signature HMAC-SHA256 (en-tête X-Signature).
Montant exact + signature valide → crédit unique (commission appliquée, alerte, audit). Signature invalide, référence inconnue ou montant différent → rejet, alerte sécurité, jamais de crédit .
L'écran client interroge GET /depots/<référence> pour afficher le statut.
Outils super admin
Kill switch POST /depots/admin/canal : ouvre/ferme un canal instantanément.
Réconciliation POST /depots/admin/reconciliation : signale puis expire les dépôts restés sans confirmation (à lancer quotidiennement). Ne crédite jamais.
Dépôt gelé (SUSPECT) : écart de montant détecté → déblocage manuel uniquement via POST /depots/admin/debloquer après vérification côté fournisseur.
6. Commission de la plateforme
Onglet COMMISSION : configurez le pourcentage (plafond 10 %), appliquez sur toutes les banques ou certaines seulement.
La commission est déduite automatiquement à la source sur chaque dépôt entrant et conservée sur le compte commission (par défaut le compte interne ; configurable vers un compte personnel via la variable COMMISSION_BENEFICIAIRE).
Le ledger (journal) conserve chaque opération : référence, utilisateur, banque, montant, pourcentage, commission.
7. Codes OTP
Double canal : SMS (passerelle Ă brancher) et email SMTP (Hostinger, actif depuis v3.13).
Le code est valable quelques minutes ; il n'est jamais demandé pour les comptes sans téléphone (ex. admin).
Configuration : variables SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, OTP_EMAIL_FROM dans /opt/moseline/.env.
8. API et intégrations
Documentation interactive : https://moselinepay.cloud/apidocs (Swagger).
Clés API partenaires : onglet API — créez, listez ou révoquez une clé à tout moment.
Modèle d'intégration partenaire (ex. Azuri) : la plateforme partenaire appelle l'API MOSELINE (modèle sortant), avec clé API, liste blanche d'IPs et journal d'audit.
Idempotence : en-tête Idempotency-Key pour éviter tout double traitement en cas de re-clic ou de coupure réseau.
9. Sécurité — bonnes pratiques
Changez le mot de passe admin après chaque campagne de démonstration.
Un compte = un utilisateur réel ; désactivez (ACTIVER/DÉSACTIVER ) plutôt que supprimer si un historique doit être conservé.
Révoquez immédiatement toute clé API compromise.
Ne partagez jamais le contenu de /opt/moseline/.env (mots de passe SMTP, secrets webhook).
Sauvegarde automatique quotidienne (cron 3h) + exports manuels avant toute opération sensible.
Toutes les actions sensibles sont journalisées dans le registre d'audit : surveillez-le régulièrement.
10. Dépannage rapide
SymptĂ´me Solution
« Trop de tentatives » au login Attendez quelques minutes (limiteur automatique) ou redémarrez le service.
OTP non reçu Vérifiez le champ email du compte, la configuration SMTP dans .env, puis redémarrez le service.
Compte créé mais impossible d'opérer Le PIN provisoire n'a pas été changé : connectez-vous et changez le PIN.
Site inaccessible sudo systemctl status moseline puis sudo systemctl restart moseline.
Dépôt réel bloqué « SUSPECT » Normal après un écart de montant : vérifiez côté fournisseur puis POST /depots/admin/debloquer.