# Relance Compta — README Produit & Spécifications (v1)

## 1) Objectif du produit

**Relance Compta** est un micro-SaaS B2B destiné aux **cabinets comptables petits et moyens** pour orchestrer la relation **cabinet ↔ entreprises clientes** autour de :
- la **collecte de pièces** (par catégories),
- les **relances automatiques**,
- le **suivi d’échéances** internes,
- l’**onboarding** des nouveaux clients,
- la **communication pédagogique** (templates).

> Le produit **ne fait pas** de comptabilité, de calcul fiscal, ni de conseil juridique : c’est un outil d’organisation, de suivi et de communication.

---

## 2) Principes clés / Périmètre

### Ce que le produit fait
- Centralise les clients du cabinet (entreprises clientes)
- Génère des **périodes** (mensuelles/trimestrielles/annuelles)
- Définit des **catégories de pièces attendues** (banque, achats, ventes, NDF, caisse…)
- Permet le dépôt de documents (upload) via un lien sécurisé
- Automatise des relances (email au début, autres canaux plus tard)
- Fournit un tableau de bord “à jour / en retard / critique”
- Gère des échéances internes (rappels, listes à traiter)
- Offre des templates de messages pédagogiques et relances
- Trace toutes les actions dans des logs exploitables

### Ce que le produit ne fait pas
- Ne “vérifie” pas l’exhaustivité facture par facture
- Ne rapproche pas les relevés bancaires / factures
- Ne produit aucun écrit comptable
- Ne calcule aucune TVA/IS/URSSAF
- Ne remplace pas un logiciel métier comptable

---

## 3) Fonctionnalités métier (détaillées)

### 3.1 Multi-tenant (Cabinets)
- Création de **compte cabinet** (organisation)
- Gestion des utilisateurs du cabinet :
  - rôles : **Admin**, **Collaborateur**, (option) **Lecture seule**
- Paramètres du cabinet :
  - identité (nom, signature email, logo optionnel)
  - timezone / langue
  - règles de relance par défaut
  - politique de rétention documents (si proposée)

### 3.2 Gestion des entreprises clientes (clients du cabinet)
- Création / édition client (raison sociale, email, type, périodicité)
- Statuts opérationnels :
  - **À jour**, **En retard**, **Critique**
- Tags / segments :
  - “à risque”, “prioritaire”, “onboarding”, etc.
- Import CSV (V1.1) et/ou ajout manuel

### 3.3 Périodes de collecte
- Périodes générées automatiquement :
  - mensuel (YYYY-MM)
  - trimestriel (YYYY-Qn)
  - annuel (YYYY)
- Activation / désactivation d’une période
- Indicateur de progression (reçu / incomplet / manquant)

### 3.4 Catégories de pièces attendues (par client et période)
- Gestion des catégories standards :
  - Banque, Achats, Ventes, Notes de frais, Caisse, Autres…
- Statuts par catégorie :
  - **Attendu**, **Reçu**, **Incomplet**, **Non reçu**
- Commentaire interne (ex : “manque relevé X”, sans granularité facture)

### 3.5 Portail client final (entreprise cliente)
- Accès via **lien sécurisé** (sans compte en V1)
- Page de dépôt :
  - upload documents
  - visualisation “ce qui est attendu”
  - bouton “J’ai tout transmis”
- Messages pédagogiques contextualisés (ex : pourquoi on demande telle catégorie)
- Confirmation d’envoi + horodatage

### 3.6 Documents (stockage + métadonnées)
- Upload de documents (PDF/JPG/PNG/ZIP… selon règles)
- Métadonnées associées :
  - client, période, catégorie, taille, type, date, auteur
- Téléchargement via lien sécurisé (URL temporaire)
- Suppression contrôlée (selon droits et politique de rétention)
- (Option) archivage/export ZIP par période/client

### 3.7 Relances automatiques (core)
- Règles de relance configurables :
  - J+7, J+14, J+30 (exemples)
  - conditions : catégorie ≠ “Reçu”
  - stop automatique si “Reçu”
- Templates de relance :
  - variables : {client_name}, {period}, {missing_categories}, {cabinet_signature}
- Historique des relances :
  - envoyé, échec (bounce), ouvert (option)
- Modes :
  - relance globale par période
  - relance ciblée par catégorie manquante

### 3.8 Échéances & obligations (interne cabinet)
- Modèles d’échéances par type de client
- Liste des échéances à venir / en retard
- Assignation à un collaborateur
- Commentaires internes
> Pas de calcul. Simple rappels/organisation.

### 3.9 Onboarding client
- Checklist d’entrée (Kbis, RIB, mandat, accès, etc.)
- Envoi automatique du lien onboarding au client final
- Suivi de progression
- Templates pédagogiques dédiés à l’onboarding

### 3.10 Bibliothèque de messages pédagogiques
- Templates prêts à l’emploi :
  - “Pourquoi j’ai besoin des relevés”
  - “Comment envoyer vos factures”
  - “Délais et bonnes pratiques”
- Insertion en 1 clic dans relances et notifications

### 3.11 Logs & audit (IMPORTANT)
Deux niveaux de logs :

#### Logs par compte Cabinet (organisation)
- Connexions / sessions (horodatage, IP si prévu, user-agent optionnel)
- Actions utilisateurs :
  - création/édition client
  - changement de statut catégorie
  - envoi relance manuelle
  - création d’échéance
- Accès documents :
  - génération de lien de téléchargement
  - téléchargement (si traçable)

#### Logs par client final (entreprise cliente)
- Ouverture du lien portail
- Upload document (nom original, type, date)
- Validation “J’ai tout transmis”
- Ouverture email de demande/relance (si tracking)

---

## 4) Liste des écrans (UI Map)

### 4.1 Landing Page (publique)
- Accueil (proposition de valeur)
- Fonctionnalités
- Tarifs
- FAQ (RGPD, documents, sécurité, relances)
- Démo / captures
- CTA : “Essai gratuit” / “Créer un compte”

### 4.2 Auth
- Inscription
- Connexion
- Mot de passe oublié / magic link (selon choix)
- (Option) MFA / 2FA

### 4.3 Onboarding cabinet (wizard)
1) Infos cabinet (nom, signature)
2) Choix pack de configuration (types clients, périodicité)
3) Catégories par défaut
4) Règles de relance
5) Ajouter 1er client (ou import)
6) Lancer 1ère demande de pièces

### 4.4 App Cabinet — Dashboard
- KPIs :
  - clients à jour / en retard / critique
  - périodes en cours
  - relances à envoyer aujourd’hui
  - échéances proches
- Liste priorisée “à traiter”

### 4.5 App Cabinet — Clients
- Liste clients + filtres (statut, tags, assigné)
- Fiche client :
  - infos
  - périodes
  - statuts par catégorie
  - documents reçus
  - historique relances
  - notes internes

### 4.6 App Cabinet — Périodes
- Vue par période (ex : 2026-01)
- Clients en retard sur la période
- Action : envoyer relance “batch”

### 4.7 App Cabinet — Échéances
- Calendrier/listing (à venir / en retard)
- Assignation + statut de traitement

### 4.8 App Cabinet — Templates
- Templates relances (global/catégorie)
- Templates pédagogiques
- Variables disponibles
- Aperçu rendu

### 4.9 App Cabinet — Logs & Audit
- Journal d’activité cabinet (filtrable)
- Journal “activité client final” (filtrable)

### 4.10 App Cabinet — Paramètres
- Profil cabinet
- Utilisateurs & rôles
- Règles relance
- Rétention / archivage
- Facturation / abonnement

### 4.11 Portail Client Final (entreprise cliente)
- Page dépôt période (simple, mobile)
- Upload documents par catégorie
- Confirmation & historique minimal
- (Option) contact cabinet / message

---

## 5) Paiement, abonnements, facturation

### Parcours recommandé
- Essai gratuit (ex : 14 jours) avec accès complet ou limité
- Paiement requis pour :
  - activer relances automatiques au-delà de X
  - multi-utilisateurs
  - volume clients/documents supérieur
  - historique long / audit avancé

### Paliers d’abonnement (exemple)
- **Essentiel** : 1-2 utilisateurs, jusqu’à N clients, relances email
- **Pro** : clients illimités, multi-utilisateurs, échéances, templates avancés
- **Cabinet+** : audit avancé, exports, personnalisation, rétention étendue

### Facturation
- Abonnement mensuel/annuel
- Gestion des sièges (option)
- Écran “Billing” :
  - plan actuel
  - factures
  - changement plan
  - annulation
  - moyen de paiement

---

## 6) Résumé schéma DB (conceptuel)

> Objectif : robustesse multi-tenant, auditabilité, performance.

### Entités principales
- `cabinets` (organisation)
- `users` (utilisateurs internes, rattachés à `cabinet_id`)
- `clients` (entreprises clientes du cabinet, rattachées à `cabinet_id`)
- `periods` (périodes par client : mensuel/trimestriel/annuel)
- `categories` (catégories de pièces configurables par cabinet)
- `client_period_categories` (statut par client/période/catégorie)
- `documents` (métadonnées documents : lien vers storage + attributs)
- `deadlines` (échéances internes)
- `templates` (relances + messages pédagogiques)
- `notifications` (relances envoyées / à envoyer / erreurs)
- `audit_logs` (journal actions cabinet)
- `client_portal_logs` (journal actions client final)
- `subscriptions` (plan, statut, quotas)
- `quota_counters` (option : suivi consommation)

### Relations essentielles
- `cabinet` 1—N `users`
- `cabinet` 1—N `clients`
- `client` 1—N `periods`
- `period` N—N `categories` via `client_period_categories`
- `client_period_categories` 1—N `documents`
- `templates` rattachés au `cabinet`
- logs rattachés au `cabinet`, et optionnellement au `client`

---

## 7) Flow du process (end-to-end)

### 7.1 Acquisition → Activation
1) Visiteur arrive sur la landing page
2) Crée un compte cabinet
3) Passe le wizard d’onboarding :
   - configure catégories + règles relance
   - ajoute 1er client
4) Envoie une première “demande de pièces” (email) au client final

### 7.2 Collecte mensuelle (cycle standard)
1) À l’ouverture d’une nouvelle période :
   - catégories attendues = “Attendu”
2) Le client final reçoit un lien sécurisé
3) Le client upload ses documents
4) Le cabinet marque les catégories :
   - Reçu / Incomplet si nécessaire
5) Si certaines catégories restent ≠ Reçu :
   - relance automatique selon règle J+n
6) À “tout reçu” :
   - le client passe “à jour”
   - la période est close (option)

### 7.3 Gestion des échéances (interne)
1) Échéances générées depuis modèles
2) Filtrage par “à faire cette semaine”
3) Assignation à collaborateur
4) Traitement + commentaire
5) Historique conservé

### 7.4 Billing
1) Fin d’essai → demande de paiement
2) Activation plan
3) Contrôle quotas :
   - nb clients
   - nb users
   - stockage
   - historique logs
4) Upgrade/downgrade géré côté compte cabinet

---

## 8) Contraintes techniques potentielles (sans imposer de stack)

### Sécurité / conformité
- Cloisonnement strict multi-tenant (aucune fuite inter-cabinet)
- Contrôle d’accès document robuste :
  - pas d’URL publique permanente
  - liens temporaires signés
- Journalisation (audit) complète et non falsifiable (au minimum append-only)
- Gestion RGPD :
  - export/suppression données à la demande
  - politique de rétention configurable
  - DPA / clauses sous-traitant

### Scalabilité
- Gros volume possible de documents :
  - privilégier stockage objet (type S3) + DB pour métadonnées
- Index DB sur `cabinet_id`, `client_id`, `period`, `status`, `due_at`
- Pagination sur toutes les listes (clients, docs, logs)
- Traitements asynchrones pour relances en masse

### Robustesse
- Gestion des échecs d’envoi email (bounces, erreurs temporaires)
- Rejouabilité (idempotence) des jobs de relance
- Files d’attente ou batch processing pour éviter les timeouts

### Coûts & quotas
- Stockage documents + bande passante peuvent coûter cher :
  - prévoir quotas par plan
  - compression/limite taille upload
  - purge/archivage

### Sécurité des uploads
- Validation MIME/type
- Limite taille/fichiers
- (Option) scan antivirus
- Normalisation des noms (UUID) et prévention path traversal

### Expérience utilisateur B2B
- Onboarding rapide (valeur en < 10 minutes)
- Import CSV et modèles par défaut
- UX simple “à jour / en retard”

---

## 9) Hors scope V1 (mais candidats V2)
- SMS / WhatsApp
- Espace client avec compte + historique long
- IA (synthèse, reformulation, scoring)
- Connecteurs (Drive/Dropbox/Email forwarding)
- Export compta / intégrations logiciels métier (souvent fermé)

---

## 10) Définition “MVP réussi”
- Landing Page qui score en SEO et score google
- application responsive pour cabinets et pour les clients
- Un cabinet peut :
  - créer son compte
  - ajouter 10 clients
  - lancer une demande de pièces
  - recevoir des uploads
  - relancer automatiquement
  - suivre son tableau “en retard”
  - retrouver l’historique des actions (logs)

---

## 11) Glossaire
- **Cabinet** : le client payeur du SaaS (organisation)
- **Client final** : entreprise cliente du cabinet (utilise le portail)
- **Période** : mois/trimestre/année de collecte
- **Catégorie** : type de pièces attendues (banque, achats, etc.)
- **Document** : fichier déposé (stockage objet) + métadonnées (DB)
- **Relance** : notification envoyée au client final pour compléter son dossier
