Portail Emprunteur
Le portail web auto-service pour les emprunteurs finaux. Design desktop + mobile responsive, installable en PWA, multilingue. Permet l'inscription en ligne, la simulation de prêt, la demande, le suivi temps-réel, le téléchargement de reçus et la génération d'attestations.
📱 Connexion
Page split-screen : branding Qredon à gauche avec les promesses ("Suivez vos prêts en temps réel", "Demandes 100% en ligne", "Remboursements simplifiés"), formulaire à droite avec :
- Sélecteur indicatif pays (drapeau +
+216par défaut Tunisie) - Champ téléphone
- Bouton "Continuer" → envoi du SMS OTP
- Séparateur "OU"
- Bouton "Continuer avec Google" (OAuth)
- Lien "Pas encore de compte ? S'inscrire" → page
/register
🧪 Pour tester la connexion par OTP
- 1Ouvrir
/login - 2Saisir un numéro emprunteur seed, ex :
+216 55 101 001(Mohamed Ben Salah, VERIFIED) - 3Cliquer "Continuer" → message "Un SMS contenant un code à 6 chiffres sera envoyé"
- 4Ouvrir MailHog
MailHog (interface dev)→ récupérer le code 6 chiffres dans le dernier email reçu - 5Revenir au portail, saisir le code → connecté → redirigé vers le dashboard
🧮 Simulateur de prêt
Permet de simuler une mensualité en temps réel et compare automatiquement 3 scénarios de durée (court terme · votre choix · long terme) avec recommandation visuelle. Utilisable avant ou après login.
Écran initial — sélection produit + sliders
Sélecteur du produit de prêt, slider Montant (entre min et max du produit), slider Durée (entre durée min et max). Mention légale en bas.
Écran avec résultats — 3 scénarios calculés
Pour le scénario Micro Credit Express · 3 000 DT · 12 mois, le simulateur affiche automatiquement 3 cartes de résultats. La carte "Votre choix" (9 mois, équilibre court/long terme) est marquée Recommandé.
| Scénario | Mensualité | Durée | Total à rembourser | Dont intérêts |
|---|---|---|---|---|
| Court terme | 526,58 DT | 6 mois | 3 204,45 DT | 159,45 DT |
| Votre choix · Recommandé | 358,83 DT | 9 mois | 3 274,47 DT | 229,47 DT |
| Long terme | 275,04 DT | 12 mois | 3 345,48 DT | 300,48 DT |
🧪 Scénarios de test du simulateur
- 1Ouvrir
/simulator(depuis un sous-domaine tenant ou avec tenant slug en contexte) - 2Sélectionner un produit : Micro Credit Express (500-5000 DT, 6-12 mois, 18%), Pret Equipement (5000-50000 DT, 24-48 mois, 12%) ou Pret Solidaire Groupe (1000-20000 DT, 12-24 mois, 15%)
- 3Bouger le slider Montant → recalcul instantané (debounce 400ms)
- 4Bouger le slider Durée → les 3 scénarios apparaissent automatiquement
- 5Vérifier la cohérence : plus la durée est longue, plus les intérêts cumulés augmentent (compensé par mensualités plus basses)
- 6Cliquer "Demander un prêt" → redirige vers
/applyavec le produit pré-sélectionné - 7Vérifier la mention légale en bas : "Cette simulation est fournie à titre indicatif et ne constitue pas une offre de crédit"
📝 Inscription — étape 1 : phone + email
Première étape du parcours d'auto-inscription. Carte centrée avec icône utilisateur, titre "Créer un compte", sous-titre "Inscrivez-vous pour accéder à votre espace emprunteur".
- Champ Numéro de téléphone (sélecteur indicatif + chiffres)
- Champ Adresse email
- Bouton "S'inscrire"
- Lien "Vous avez déjà un compte ? Se connecter"
🧪 Démarrer une inscription
- 1Ouvrir
/register - 2Saisir un numéro non encore utilisé (ex:
+216 55 199 999) + email valide - 3Cliquer "S'inscrire" → 2 OTPs envoyés (SMS + email)
- 4Redirigé vers
/register/verify
🔢 Vérification OTP (double : SMS + email)
Après soumission de l'étape 1, l'emprunteur reçoit deux codes OTP simultanément : un sur son téléphone par SMS, un sur son email. Il doit saisir les deux pour valider l'inscription.
Note : la page redirige vers /register si aucun flow d'inscription actif (cas d'un accès direct à l'URL).
🧪 Valider la double vérification OTP
- 1Après l'étape 1, ouvrir MailHog
MailHog (interface dev) - 2Récupérer le code SMS (envoyé au numéro saisi) + le code email (envoyé à l'adresse saisie)
- 3Saisir les 2 codes dans les 2 champs de vérification
- 4Valider → redirigé vers le wizard
/register/profile
📋 Wizard profil — 4 onglets
Après la double vérification OTP, l'emprunteur entre dans un wizard à 4 étapes obligatoires. Indicateur visuel des 4 étapes en haut. Bouton "Suivant" pour avancer (filling obligatoire avant passage).
| Étape | Nom | Champs principaux |
|---|---|---|
| 1 | Informations personnelles | Prénom, Nom, Date naissance, Genre, Nationalité (par défaut "Tunisienne"), Situation familiale, Adresse, Ville, Code postal, Région, Nombre de personnes à charge |
| 2 | Informations professionnelles | Activité, Statut emploi, Source revenus, Montant revenus, Charges mensuelles |
| 3 | Documents | Upload CIN recto/verso, justificatif revenus, attestation |
| 4 | Consentement | Acceptation CGU, traitement données personnelles, signature OTP |
Étape 1 — Informations personnelles
🧪 Compléter le wizard profil
- 1Étape 1 — Remplir prénom, nom, date naissance, genre, situation familiale, adresse complète, région
- 2Cliquer "Suivant" → passage à l'étape 2
- 3Étape 2 — Activité (commerçant, salarié, artisan...), revenus mensuels, charges
- 4Étape 3 — Upload des documents requis (CIN, justificatifs)
- 5Étape 4 — Cocher CGU, signer par OTP → demande soumise
- 6Redirigé vers
/register/pending
⏳ Dossier en cours d'examen
Page de confirmation après soumission de l'inscription. Timeline visuelle avec 4 étapes : Inscription (✅), Vérification OTP (✅), Profil complété (✅), Examen en cours (🟡). Délai de traitement annoncé : 24 à 48 heures ouvrées. Bouton "Se déconnecter".
🧪 Vérifier le passage de pending à validé
- 1L'emprunteur a soumis son dossier → il voit cette page avec "Examen en cours"
- 2Côté Espace IMF, un agent ouvre
/borrowers/pending-validation→ voit le dossier - 3L'agent valide le KYC (APPROVE)
- 4L'emprunteur reçoit une notification par email/SMS → "Votre compte a été validé"
- 5Lors de sa prochaine connexion, il a accès au dashboard complet
❌ Inscription rejetée
Page affichée si l'agent IMF rejette l'inscription. L'emprunteur voit la raison du rejet et peut soit refaire une demande, soit contacter le support.
🏠 Dashboard emprunteur
Première page après connexion (route /home, accessible aussi via / qui redirige). En-tête "Mon espace" avec avatar initiales en haut à droite, salutation personnalisée "Bonjour {prénom}", section centrale sur le prêt actif (ou empty state si aucun), liste des demandes en cours, raccourcis "Actions rapides" et bottom nav.
Composants visibles sur la capture
- Header : "Mon espace" centré, avatar emprunteur (initiales) en haut à droite
- Greeting : "Bonjour Ridha · Bienvenue sur votre espace emprunteur"
- Empty state prêt actif : icône carte + "Pas de prêt actif" + CTA "Simuler un prêt" (Ridha n'a pas encore de prêt décaissé)
- Demandes en cours (1) : carte avec le produit "Pret Solidaire Groupe", référence AA-2026-003, montant 8 000,00 DT, badge "En cours d'examen"
- Actions rapides : 3 cards — "Faire une demande", "Mes paiements", "Mes documents"
- Bottom nav : Accueil (actif) · Demande · Paiements · Documents · Profil
🧪 Variantes selon le statut du borrower
- Sans prêt ni demande (nouveau borrower validé) : empty state "Pas de prêt actif" + invitation à simuler/demander
- Demande UNDER_REVIEW (Ridha) : empty state prêt + section "Demandes en cours" avec la demande
- Prêt APPROVED en attente décaissement (Amira) : carte "Prêt approuvé, en attente de décaissement"
- Prêt DISBURSED actif (Mohamed) : carte avec progression du remboursement, prochaine échéance, alerte si retard
💰 Demander un prêt
L'emprunteur choisit un produit dans le catalogue. Chaque produit affiche ses bornes (montant min/max, durée), son taux indicatif, et offre 2 actions : "Simuler" (sans engagement) ou "Choisir" (démarre le wizard de demande). Navigation par bottom tabs : Accueil · Demande · Paiements · Documents · Profil.
🧪 Démarrer une demande de prêt
- 1Connecté en tant que Mohamed Ben Salah (VERIFIED), cliquer "Demande" dans le bottom nav
- 23 produits affichés : Micro Credit Express (500-5000 DT, 6-12 mois, 18%), Pret Equipement (5000-50000 DT, 24-48 mois, 12%), Pret Solidaire Groupe (1000-20000 DT, 12-24 mois, 15%)
- 3Cliquer "Simuler" → modale ou page avec calcul mensualité
- 4Cliquer "Choisir" → démarre le wizard 4 étapes de demande de prêt
🔎 Suivi des demandes
Page /track qui liste toutes les demandes de l'emprunteur avec leur statut courant. Filtres par statut (Toutes / En attente / En étude / Approuvées / Refusées / Décaissées). Chaque carte est cliquable pour ouvrir la timeline détaillée et uploader des compléments si l'IMF en demande.
🧪 Vérifier le filtrage et l'affichage
- 1Connecté Ridha (
+216 55 103 003) → onglet "Demande" → /track - 2Vérifier la card "Pret Solidaire Groupe · Ref AA-2026-003 · 20 mai 2026 · 8 000,00 DT" avec badge "En cours d'analyse"
- 3Cliquer chips de filtres : "En étude" → ne devrait laisser que les demandes UNDER_REVIEW · "Approuvées" → liste vide pour Ridha
- 4Cliquer une demande → ouvre la page détail avec la timeline (étapes franchies + à venir)
💵 Mon prêt actif
Vue détaillée du prêt en cours : nom du produit + référence + badge statut, montant décaissé en gros, KPIs Total payé / Restant en cards colorées (vert/orange), barre de progression du remboursement, dates clés (décaissement + échéance finale), et plan d'amortissement complet avec colonnes Date · Dû · Payé · Statut (icône colorée).
Composants visibles sur la capture (Mohamed Ben Salah)
- Header : "Micro Credit Express" + référence "AA-2026-001" + badge rouge "En retard"
- Montant décaissé : 3 000,00 DT
- KPIs : Total payé 1 100,00 DT (vert) · Restant 550,00 DT (orange)
- Progress bar 67% (capital remboursé)
- Dates : Décaissé le 1 nov. 2025 · Échéance finale 1 mai 2026
- Plan d'amortissement — 6 échéances :
- 1 déc. 2025 · 275 DT dû · 275 DT payé · ✅ (PAID)
- 1 janv. 2026 · 275 / 275 · ✅
- 1 févr. 2026 · 275 / 275 · ✅
- 1 mars 2026 · 275 / 275 · ✅
- 1 avr. 2026 · 275 / 0 · ⚠️ (EN RETARD)
- 1 mai 2026 · 275 / 0 · ⏰ (à venir)
- Bottom nav
📜 Historique des prêts
Page /loan/history qui liste tous les prêts clôturés du borrower. Pour un emprunteur sans prêt clôturé, empty state avec icône document + "Aucun prêt passé" + sous-texte.
🧪 Tester l'historique
- 1Borrower sans prêt clôturé (ex: Ridha) → empty state "Aucun prêt passé · Vous n'avez pas encore de prêt clôturé dans votre historique"
- 2Borrower avec prêt clôturé (non-seed actuellement) → liste paginée des prêts CLOSED avec montants, dates, durées, possibilité de télécharger les reçus archivés
- 3Bouton retour ← navigue vers la page précédente
💳 Remboursements + reçus
Page très visuelle : Total payé / Restant en KPIs, calendrier mensuel avec jours colorés selon statut (Payé · À venir · Retard · Aujourd'hui), liste détaillée des échéances avec montant et statut.
🧪 Vérifier le calendrier et les échéances
- 1Connecté Mohamed Ben Salah → onglet "Paiements"
- 2Vérifier les KPIs en haut : Total payé 1 100 DT / Restant 550 DT
- 3Calendrier Mai 2026 → jour 20 surligné en orange (Aujourd'hui)
- 4Section "Détail des échéances" → 4 échéances payées (mars, février, janvier, décembre) à 275 DT chacune
- 5Naviguer mois précédent / suivant via les flèches
📄 Documents + attestations QR
Bibliothèque des documents de l'emprunteur (CIN, contrats, reçus de paiement) et page dédiée pour générer des attestations.


3 types d'attestations disponibles : Bonne tenue (paiements à jour), Clôture de prêt (prêt remboursé), Résumé prêt actif (pour démarches bancaires). Chaque attestation a un QR code public scannable via /verify/{qrCode}.
🔔 Notifications
Centre des notifications reçues (prêt approuvé, paiement confirmé, demande de complément, échéance à venir, etc.).
👤 Mon profil & sécurité
Page profil complète : en-tête avec avatar + nom + badge statut KYC Vérifié, barre de progression du profil (100% pour Mohamed), sections : Informations personnelles (Nom, Prénom, Téléphone, CIN), Informations de contact (Email, Adresse, Ville), Sélecteur de langue (Français / Arabe / English), bouton "Changer de numéro" (avec OTP), bouton "Préférences notifications".
🧪 Mettre à jour le profil
- 1Modifier l'email ou l'adresse → sauvegarde immédiate
- 2Changer la langue Français → العربية → toute l'interface bascule en arabe (RTL)
- 3Cliquer "Changer de numéro" → OTP envoyé sur l'ancien et le nouveau numéro → double validation requise
- 4"Préférences notifications" → activer/désactiver SMS, email, push par type d'événement
🔑 Comptes emprunteurs seed (10)
Tenant : al-amal-mf · Pas de mot de passe — login par OTP SMS. Le code OTP est envoyé via MailHog (MailHog (interface dev)). Couvre tous les statuts KYC possibles.
| Téléphone | Nom | CIN | Agence | Statut KYC | État prêt |
|---|---|---|---|---|---|
+216 55 101 001 | Mohamed Ben Salah | 07891234 | Tunis Centre | VERIFIED | DISBURSED — prêt actif |
+216 55 102 002 | Amira Zarrouki | 07892345 | La Marsa | VERIFIED | APPROVED — en attente décaissement |
+216 55 103 003 | Ridha Oueslati | 07893456 | Nabeul | VERIFIED | UNDER_REVIEW — en cours d'examen |
+216 55 104 004 | Ines Bouzid | 07894567 | Tunis Centre | PENDING_REVIEW | — |
+216 55 105 005 | Walid Chahed | 07895678 | La Marsa | PENDING_REVIEW | — |
+216 55 106 006 | Sarra Mansouri | (non rempli) | Hammamet | PENDING_PROFILE | — |
+216 55 107 007 | Hatem Khelifi | (non rempli) | Nabeul | PENDING_PROFILE | — |
+216 55 108 008 | Fathi Derbali | 07896789 | Tunis Centre | REJECTED | — |
+216 55 109 009 | (en cours OTP) | — | — | PENDING_OTP | — |
+216 55 110 010 | Leila Haddad | 07897890 | La Marsa | ADDITIONAL_INFO | — |
🧪 Tous les scénarios de test
Catalogue exhaustif basé sur le portail tel qu'il existe au 2026-05-20.
A. Connexion (10 scénarios)
- 1Login OTP standard — Ouvrir /login → saisir
+216 55 101 001→ cliquer "Continuer" → récupérer OTP sur MailHog → saisir code → connecté au dashboard. - 2Login OAuth Google — Cliquer "Continuer avec Google" → consentement Google → retour avec session ouverte.
- 3Login borrower VERIFIED avec prêt actif — Mohamed Ben Salah (
+216 55 101 001) → dashboard avec prêt DISBURSED + plan d'amortissement. - 4Login borrower VERIFIED en attente décaissement — Amira Zarrouki → dashboard avec prêt APPROVED.
- 5Login borrower PENDING_REVIEW — Ines Bouzid → écran "Dossier en cours d'examen" (timeline), pas d'accès aux features.
- 6Login borrower PENDING_PROFILE — Sarra Mansouri → redirigé vers wizard /register/profile pour compléter.
- 7Login borrower REJECTED — Fathi Derbali → écran "Inscription rejetée" + raison.
- 8Numéro non enregistré — Saisir un phone inconnu → message proposant de "Créer un compte" (lien "S'inscrire").
- 9Code OTP incorrect — Saisir 6 chiffres faux → "Code invalide".
- 10Code OTP expiré (5 min) — Attendre 5+ min → "Code expiré, redemandez".
B. Simulateur public (6 scénarios)
- 1Accès sans login — Ouvrir /simulator en navigation incognito → aucune connexion requise.
- 2Simulation Micro Credit Express — Produit MCE-001, montant 5000 TND, durée 12 mois → mensualité affichée + plan d'amortissement (18% intérêts annuels).
- 3Simulation Pret Solidaire Groupe — PSG-001, 15000 TND, 18 mois (taux 15%).
- 4Simulation Pret Equipement — PEQ-001, 30000 TND, 36 mois (taux 12%).
- 5Montant hors bornes — Saisir 100 TND (sous le min MCE de 500) → message d'erreur. Saisir 50000 pour MCE (au-dessus du max 5000) → message d'erreur.
- 6CTA conversion — Cliquer "Faire une demande" → redirige vers /register (si déconnecté) ou /apply (si connecté).
C. Inscription bout-en-bout (15 scénarios)
- 1Démarrage inscription — Ouvrir /register → saisir nouveau phone (ex:
+21655199999) + email valide → "S'inscrire". - 2Réception double OTP — Ouvrir MailHog → trouver les 2 emails (un pour le code SMS, un pour le code email).
- 3Validation double OTP — Saisir les 2 codes → redirigé vers /register/profile.
- 4Wizard étape 1 — Informations personnelles — Remplir prénom, nom, date naissance, genre, nationalité (Tunisienne par défaut), situation familiale, adresse complète, ville, code postal, région, nb personnes à charge → "Suivant".
- 5Wizard étape 2 — Informations professionnelles — Activité, statut emploi, source revenus, montant mensuel, charges → "Suivant".
- 6Wizard étape 3 — Documents — Upload CIN recto + verso, justificatif revenus → "Suivant".
- 7Wizard étape 4 — Consentement — Cocher CGU + traitement données → "Soumettre" + signature OTP.
- 8Redirection vers pending — Après soumission → /register/pending avec timeline 4 étapes (3 ✅ + 1 🟡).
- 9Tentative champ obligatoire vide — Soumettre étape 1 sans prénom → erreur sur le champ.
- 10Format phone invalide — Saisir
12345→ erreur "Format MENA invalide". - 11Phone déjà utilisé — Tenter avec
+216 55 101 001→ erreur "Numéro déjà inscrit". - 12Email déjà utilisé — Tenter avec email d'un emprunteur existant → erreur "Email déjà utilisé".
- 13CGU non cochées — Tenter soumission étape 4 sans cocher → blocage.
- 14Validation par l'IMF — Côté Espace IMF, agent Fatma (
fatma.chaabane@al-amal.tn) valide → l'emprunteur reçoit notif "Compte validé". - 15Reconnexion après validation — Le borrower se reconnecte → accès au dashboard complet.
D. Dashboard & prêt actif (8 scénarios — nécessitent backend OTP fixé)
- 1Dashboard avec prêt actif — Login Mohamed → dashboard montre prêt DISBURSED + montant + prochaine échéance dans X jours.
- 2Dashboard sans prêt — Login Amira (avant décaissement) → dashboard montre "Prêt approuvé, en attente de décaissement".
- 3Raccourcis dashboard — Boutons "Demander un nouveau prêt", "Suivre mes demandes", "Mes documents".
- 4Vue prêt actif détaillée — /loan/active → plan d'amortissement complet, capital restant dû, intérêts payés vs restants.
- 5Historique des paiements — /loan/active onglet Historique → liste paginée des paiements avec dates/montants/modes.
- 6Historique prêts clôturés — /loan/history → liste paginée des prêts précédents avec leurs reçus.
- 7Notif "Échéance dans 3 jours" — Automatique 3 jours avant chaque échéance.
- 8Alerte retard — Échéance dépassée → bandeau rouge "Paiement en retard".
E. Demande de prêt (10 scénarios — nécessitent backend OTP fixé)
- 1Démarrer une demande — /apply → sélection produit (Micro Credit Express / Solidaire Groupe / Pret Equipement).
- 2Wizard 4 étapes — Identité (pré-rempli depuis profil) → Économique → Projet → Documents.
- 3Sauvegarde brouillon — Quitter au milieu → reprise plus tard où on en était.
- 4Signature OTP de consentement — Étape finale → OTP requis (conformité légale).
- 5Référence générée — Après soumission → écran avec référence unique du dossier.
- 6Tentative demande KYC pending — Borrower PENDING_REVIEW tente /apply → blocage avec message.
- 7Montant hors bornes produit — MCE max 5000 → saisir 10000 → erreur.
- 8Upload documents — Étape Documents → photos / scans → preview avant submission.
- 9Brouillon expiré — Brouillon vieux de >30 jours → marqué EXPIRED.
- 10Annulation demande — Tant que statut DRAFT ou SUBMITTED → bouton "Annuler" disponible.
F. Suivi des demandes (6 scénarios — nécessitent backend OTP fixé)
- 1Liste demandes — /track → toutes mes demandes avec statut visuel.
- 2Timeline détaillée — Cliquer une demande → étapes franchies + à venir avec timestamps.
- 3Demande de complément — Si l'IMF demande un doc supplémentaire → notif + bouton upload sur la timeline.
- 4Notif APPROVED — Push "Bonne nouvelle, prêt approuvé".
- 5Notif REJECTED — Push "Demande non retenue" (message générique).
- 6Notif DISBURSED — Push "Prêt décaissé" + montant.
G. Remboursements & reçus (7 scénarios — nécessitent backend OTP fixé)
- 1Calendrier échéances — /repayments → vue calendrier avec échéances futures et passées.
- 2Notif rappel J-3 — 3 jours avant une échéance → push.
- 3Notif paiement confirmé — Caissier IMF enregistre → push immédiat à l'emprunteur.
- 4Téléchargement reçu PDF — Échéance PAID → bouton "Télécharger le reçu" → PDF avec QR.
- 5Historique paiements — Liste paginée des paiements avec montants, dates, modes.
- 6Alerte retard — Échéance dépassée → bandeau rouge.
- 7Vue détaillée d'un paiement — Cliquer une ligne → modale avec mode, référence, agent.
H. Documents & attestations QR (7 scénarios — nécessitent backend OTP fixé)
- 1Voir mes documents — /documents → liste de tous mes docs (CIN, contrats, reçus).
- 2Télécharger un document — PDF ou JPG sauvegardé localement.
- 3Générer attestation de bonne tenue — Borrower avec paiements à jour → "Demander attestation" → choisir GOOD_STANDING → PDF + QR.
- 4Attestation clôture — Borrower avec prêt remboursé → LOAN_CLOSURE.
- 5Attestation résumé prêt actif — ACTIVE_LOAN_SUMMARY.
- 6Vérification publique QR — Une 3e personne scanne le QR →
/verify/{qrCode}sans login → métadonnées (sans le fichier). - 7QR expiré — Scan après expiration → "Attestation expirée".
I. Profil & sécurité (8 scénarios — nécessitent backend OTP fixé)
- 1Voir mon profil — /profile → infos perso, agence assignée, statut KYC.
- 2Modifier email/adresse — Champs éditables → sauvegarde immédiate.
- 3Changer de téléphone — Double OTP (ancien + nouveau numéro) → confirmé.
- 4Activer 2FA TOTP — QR code à scanner avec Google Authenticator → 1er code → activé.
- 5Désactiver 2FA — Confirmation OTP + code TOTP en cours → désactivé.
- 6Sessions actives — Liste des appareils connectés → bouton "Déconnecter" par session.
- 7Log d'activité — Historique des logins, uploads, demandes.
- 8Déconnexion — Bouton "Se déconnecter" depuis le profil → retour à /login.
J. Workflows complets bout-à-bout (4 scénarios)
- 1Inscription complète emprunteur → validation IMF → premier prêt
- Visiteur ouvre /simulator → simule un prêt
- Clique "Faire une demande" → /register
- Saisit phone + email → s'inscrit
- Reçoit double OTP via MailHog → valide
- Complète wizard profil (4 étapes)
- Soumet → écran /register/pending
- Côté IMF, Fatma (
fatma.chaabane@al-amal.tn) ouvre /borrowers/pending-validation → valide - L'emprunteur reçoit email "Compte validé"
- Il se reconnecte → accès au dashboard
- Fait sa première demande de prêt depuis /apply
- L'IMF approuve + décaisse → push "Prêt décaissé"
- 2Cycle remboursement mensuel
- 3 jours avant échéance → notif portail "Échéance dans 3 jours"
- L'emprunteur paie à l'agence en cash ou mobile money
- Caissier IMF (
salma.hamdi@al-amal.tn) enregistre le paiement - Push immédiate à l'emprunteur "Paiement confirmé"
- L'emprunteur télécharge son reçu PDF
- Il partage le reçu via WhatsApp à son comptable
- 3Complément KYC demandé
- Borrower avec docs incomplets → statut ADDITIONAL_INFO_REQUIRED
- Notif portail "Document complémentaire requis"
- Il ouvre la notif → liste des docs à fournir
- Il uploade depuis son téléphone (photo)
- Statut repasse à PENDING_REVIEW
- L'IMF re-révise et valide → KYC VERIFIED
- 4Attestation pour banque tierce
- Borrower a un prêt actif et veut prouver sa bonne tenue
- /documents/attestation → "Bonne tenue" → PDF + QR généré
- Il envoie le PDF par WhatsApp à sa banque
- L'agent bancaire scanne le QR avec son téléphone
- Page
/verify/{qrCode}publique → "Attestation valide · émise le X · pour Y"
En environnement local/test, les OTP SMS ne partent pas vers de vrais opérateurs : le code est loggé dans la sortie de l'API. Pour le récupérer après avoir cliqué "Continuer" :
ssh ${SERVEUR} 'docker compose -f ~/qredon/docker-compose.local.yml logs api --tail=30 | grep "code de v" | tail -1'
Les OTP email de l'inscription en revanche partent vers MailHog (MailHog (interface dev)) et sont consultables comme un vrai client mail.