Files
roadwave/docs/domains/monetization/rules/monetisation-createurs.md
jpgiannetti 5e5fcf4714 refactor(docs): réorganiser la documentation selon principes DDD
Réorganise la documentation du projet selon les principes du Domain-Driven Design (DDD) pour améliorer la cohésion, la maintenabilité et l'alignement avec l'architecture modulaire du backend.

**Structure cible:**
```
docs/domains/
├── README.md (Context Map)
├── _shared/ (Core Domain)
├── recommendation/ (Supporting Subdomain)
├── content/ (Supporting Subdomain)
├── moderation/ (Supporting Subdomain)
├── advertising/ (Generic Subdomain)
├── premium/ (Generic Subdomain)
└── monetization/ (Generic Subdomain)
```

**Changements effectués:**

Phase 1: Création de l'arborescence des 7 bounded contexts
Phase 2: Déplacement des règles métier (01-19) vers domains/*/rules/
Phase 3: Déplacement des diagrammes d'entités vers domains/*/entities/
Phase 4: Déplacement des diagrammes flux/états/séquences vers domains/*/
Phase 5: Création des README.md pour chaque domaine
Phase 6: Déplacement des features Gherkin vers domains/*/features/
Phase 7: Création du Context Map (domains/README.md)
Phase 8: Mise à jour de mkdocs.yml pour la nouvelle navigation
Phase 9: Correction automatique des liens internes (script fix-markdown-links.sh)
Phase 10: Nettoyage de l'ancienne structure (regles-metier/, diagrammes/, features/)

**Configuration des tests:**
- Makefile: godog run docs/domains/*/features/
- scripts/generate-bdd-docs.py: features_dir → docs/domains

**Avantages:**
 Cohésion forte: toute la doc d'un domaine au même endroit
 Couplage faible: domaines indépendants, dépendances explicites
 Navigabilité améliorée: README par domaine = entrée claire
 Alignement code/docs: miroir de backend/internal/
 Onboarding facilité: exploration domaine par domaine
 Tests BDD intégrés: features au plus près des règles métier

Voir docs/REFACTOR-DDD.md pour le plan complet.
2026-02-07 17:15:02 +01:00

419 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 9. Monétisation créateurs
### 9.1 Pourboires
**Décision** : ❌ Fonctionnalité abandonnée pour le MVP
**Raisons** :
- Complexité juridique (collecte pour compte de tiers, TVA variable)
- Frais de transaction élevés sur petits montants (Mangopay ~1.8% + 0.18€)
- UX additionnelle à développer (wallet, transactions, confirmations)
- Charge comptable importante pour la plateforme
**Post-MVP** : Possible réintégration avec crypto (Bitcoin/Lightning Network) si législation UE l'autorise clairement (régulation MiCA en cours).
---
### 9.2 Conditions d'activation de la monétisation
**Décision** : 5 critères cumulatifs obligatoires
| Critère | Seuil | Justification |
|---------|-------|---------------|
| **Ancienneté** | Compte créé depuis ≥ 3 mois | Anti-fraude : temps de détecter comportements suspects |
| **Popularité** | ≥ 500 abonnés | Garantit audience réelle et engagée |
| **Engagement** | ≥ 10 000 écoutes complètes cumulées | Créateurs produisant du contenu de qualité |
| **Fiabilité** | Aucun strike actif, 0 contenu modéré dans les 6 derniers mois | Historique propre requis |
| **Régularité** | ≥ 5 contenus publiés dans les 90 derniers jours | Activité constante |
**Vérification** : Automatique via requêtes SQL lors de la demande d'activation
**Affichage** :
- Bouton "Demander la monétisation" dans profil créateur
- Si critères non remplis → affichage progression vers objectifs
- Si critères remplis → redirection vers KYC Mangopay
**Justification** :
- **Anti-fraude** : Le délai de 3 mois permet de détecter les comptes suspects
- **Qualité** : Seuls les créateurs sérieux avec audience réelle sont monétisés
- **Coût administratif** : Réduit le nombre de comptes à gérer (KYC, comptabilité, virements)
- **Légitimité** : Audience organique prouvée
---
### 9.3 KYC (Know Your Customer) et inscription
**Décision** : Statut juridique professionnel obligatoire
**Statuts acceptés** :
- Auto-entrepreneur (micro-BNC pour artistes/créateurs de contenu)
- SARL/SAS/SASU (sociétés)
**Documents requis** :
| Document | Obligatoire | Format | Validité |
|----------|-------------|--------|----------|
| **SIRET** | ✅ | 14 chiffres | Permanent |
| **RIB professionnel** | ✅ | IBAN FR | Permanent |
| **Pièce d'identité** | ✅ | CNI/Passeport | En cours de validité |
| **Numéro TVA intracommunautaire** | ⚠️ Si applicable | FR + 11 chiffres | Permanent |
| **Kbis <3 mois** | ⚠️ Si société | PDF | <3 mois |
**Vérification** : Via Mangopay (KYC intégré + vérification bancaire)
**Délai** : 24-72h si documents conformes
**Rejet possible si** :
- Documents invalides/illisibles
- Identité ne correspond pas au compte RoadWave
- Liste noire anti-blanchiment (vérification automatique Mangopay)
- RIB non professionnel (particulier)
**Base légale** :
- **Conformité fiscale** : L'État français impose déclaration revenus >1200€/an (DAS2)
- **Anti-blanchiment** : Directive EU 2018/843 (5ème directive LCB-FT)
- **RGPD** : Données hébergées EU via Mangopay (conforme)
**Justification** :
- **Responsabilité légale** : RoadWave doit pouvoir prouver identité réelle créateurs monétisés
- **Automatisation** : Mangopay gère tout (KYC, vérifications, conformité, e-wallets)
- **KYC gratuit** : inclus dans l'offre Mangopay (vs 1.20€ chez Stripe)
- **Souveraineté EU** : Mangopay est européen (France/Luxembourg), régulé ACPR
---
### 9.4 Sources de revenus créateurs
#### A) Publicités (utilisateurs gratuits)
**Formule** : **3€ / 1000 écoutes complètes** (CPM créateur)
**Répartition économique** :
```
Publicité facturée par RoadWave : 0.05€/écoute complète = 50€ CPM
├─ Créateur touche : 3€ (6% du CA pub)
└─ Plateforme garde : 47€ (94%)
├─ CDN + infrastructure : ~10-15€
├─ Modération + support : ~5-10€
├─ Développement + R&D : ~10-15€
└─ Marge opérationnelle : ~10-15€
```
**Exemple concret** :
- 10 000 écoutes/mois → créateur touche **30€**
- 50 000 écoutes/mois → créateur touche **150€**
- 100 000 écoutes/mois → créateur touche **300€**
**Comparaison industrie** :
- YouTube : 3-5€/1000 vues
- Spotify : 3-4€/1000 écoutes
- RoadWave : 3€/1000 écoutes (aligné)
**Règles comptabilisation** :
- ✅ Écoute complète = ≥80% du contenu écouté
- ✅ Utilisateur gratuit uniquement
- ❌ Écoutes Premium ne comptent pas ici (autre système)
- ❌ Bots détectés exclus (rate limiting + analyse patterns)
---
#### B) Abonnés Premium
**Formule** : **70% au créateur, 30% à la plateforme**
**Répartition proportionnelle au temps d'écoute effectif** :
```
Utilisateur Premium = 4.99€/mois
├─ 3.49€ reversés aux créateurs (70%)
└─ 1.50€ gardés par plateforme (30%)
Si l'utilisateur écoute 3 créateurs ce mois :
- Créateur A : 10h d'écoute (50%) → 1.75€
- Créateur B : 6h d'écoute (30%) → 1.05€
- Créateur C : 4h d'écoute (20%) → 0.70€
```
**Calcul technique** :
```sql
-- Pour chaque utilisateur Premium
SELECT
creator_id,
SUM(listen_duration_seconds) AS total_seconds,
(SUM(listen_duration_seconds) / total_user_seconds) AS ratio,
(4.99 * 0.70 * ratio) AS revenue_euros
FROM premium_listens
WHERE user_id = :user_id
AND month = :current_month
GROUP BY creator_id;
```
**Comparaison industrie** :
- YouTube Premium : 70/30
- Spotify : 70/30
- Apple Music : 52/48 (moins avantageux)
- RoadWave : 70/30 (standard)
**Justification** :
- **Standard industrie** : ratio équitable éprouvé
- **Incitation qualité** : créateurs les plus écoutés gagnent plus
- **Équité** : pas de "winner takes all", chaque créateur écouté reçoit sa part
- **Marge plateforme** : 30% couvre absence revenus pub sur Premium
---
### 9.5 Paiement des créateurs
#### 9.5.1 Seuil de paiement et conservation du solde
**Seuil standard** : 50€
- En dessous → solde reporté mois suivant
- Évite frais bancaires sur micro-sommes (Mangopay SEPA : 1.8% + 0.18€)
- Standard industrie (YouTube/Twitch/Spotify = 50-100€)
**Conservation du solde** :
- Solde conservé **indéfiniment** SI créateur actif
- Critère activité : >0 écoute/mois OU connexion dashboard/mois
- Solde visible en temps réel dans dashboard créateur
**Créateur inactif** (0 écoute/mois + 0 connexion dashboard) :
| Durée inactivité | Action RoadWave | Email créateur |
|------------------|-----------------|----------------|
| **0-12 mois** | Conservation solde | Aucun |
| **12 mois** | Conservation solde | "⚠️ Vous avez X€ en attente. Versement automatique dans 6 mois si inactivité continue." |
| **18 mois** | Préavis versement | "📢 Versement automatique dans 30 jours (frais bancaires déduits : ~0.36€)" |
| **18 mois + 30j** | **Versement forcé** | Confirmation versement + montant net |
| **18 mois + 37j** | Purge données comptables | (Conservation logs 10 ans RGPD) |
**Exception soldes <10€** :
- Si solde <10€ après 18 mois → Frais bancaires (0.36€) > 3.6% du montant
- Proposition email : "Don association ou conservation jusqu'à 50€"
- Si don refusé + inactivité continue → versement forcé quand même (équité)
**Frais bancaires assumés par créateur** :
- Mangopay SEPA : 1.8% + 0.18€
- Exemple : 45€ → versement **44.64€** net
- Transparence totale dans email préavis
**Modèle email (12 mois d'inactivité)** :
```
Objet : ⚠️ Votre solde RoadWave (X€) - Action requise
Bonjour [Créateur],
Vous n'avez pas publié de contenu depuis 12 mois.
Votre solde actuel : XX.XX€
🔔 Si vous restez inactif 6 mois supplémentaires :
→ Versement automatique (frais bancaires déduits)
→ Montant net estimé : XX.XX€
💡 Pour éviter le versement anticipé :
- Publiez un nouveau contenu, OU
- Connectez-vous à votre dashboard créateur
Consultez votre solde : [Lien dashboard]
L'équipe RoadWave
```
**Comparaison Twitch** :
| Critère | Twitch | RoadWave | Avantage |
|---------|--------|----------|----------|
| **Seuil paiement** | 50-100$ | 50€ | Aligné |
| **Délai inactivité** | 24 mois | 18 mois | RoadWave plus court |
| **Action fin délai** | **Forfeiture** (perte argent) | **Versement forcé** (récupère argent) | ✅ RoadWave plus équitable |
| **Emails préventifs** | ❓ Non documenté | 12 mois + 18 mois + 30j avant | ✅ RoadWave transparent |
| **Frais bancaires** | ❓ Non documenté | Déduits + annoncés | ✅ RoadWave transparent |
**Justification** :
- **Plus équitable que Twitch** : versement forcé au lieu de forfeiture (créateur récupère son argent)
- **Emails préventifs** : 3 relances (12 mois, 18 mois, 18 mois + 30j) avant action
- **Transparence** : frais bancaires annoncés clairement dans emails
- **Assume bonne foi** : 18 mois d'inactivité = probablement abandon compte, mais argent restitué
---
#### 9.5.2 Fréquence et calendrier de paiement
**Fréquence** : Mensuelle
| Date | Action |
|------|--------|
| **Dernier jour du mois** (ex: 31 janvier) | Calcul revenus du mois via SQL |
| **1-14 du mois suivant** | Traitement contestations/fraudes éventuelles |
| **15 du mois suivant** (ex: 15 février) | Virement SEPA via Mangopay (Payout) |
| **16-18 du mois suivant** | Réception virement (1-3 jours ouvrés SEPA) |
**Virement via Mangopay** :
- SEPA pour comptes EU (gratuit, 1-3 jours)
- Virement international hors EU (frais variables selon pays, rare en pratique)
- **E-wallets automatiques** : chaque créateur possède un wallet Mangopay où ses revenus sont transférés automatiquement
**Tableau de bord créateur** (temps réel) :
| Métrique | Description | Mise à jour |
|----------|-------------|-------------|
| **Revenus pub** | Écoutes × CPM | Temps réel |
| **Revenus premium** | Abonnés actifs × ratio écoute | Temps réel |
| **Solde disponible** | Total revenus mois en cours | Temps réel |
| **Solde en attente** | Revenus mois précédent (paiement le 15) | Figé fin de mois |
| **Historique virements** | Liste des paiements reçus | Permanent |
| **Export comptable CSV** | Données pour expert-comptable | Téléchargement |
**Gestion échecs virement** :
1. Tentative 1 (15 du mois) → échec
2. Retry automatique J+3
3. Retry automatique J+7
4. Si 3 échecs → suspension monétisation + email créateur (RIB invalide)
---
### 9.6 Contenus Premium exclusifs
**Décision** : Créateur décide individuellement pour chaque contenu
**Fonctionnement** :
- Toggle "Réservé Premium" lors création/édition contenu
- **Aucune limite imposée** : créateur peut mettre 0%, 50% ou 100% en premium
- Badge 👑 visible sur interface utilisateur
**Comportement utilisateurs gratuits** :
- Contenu premium visible dans liste/algo
- Tentative lecture → overlay bloquant
- Message : "Ce contenu est réservé aux abonnés Premium"
- CTA : "Passez Premium pour 4.99€/mois"
**Comportement algorithme** :
- Contenus premium inclus dans recommandations
- Si user gratuit → contenu skippé automatiquement (ne consomme pas de slot)
- Si user premium → diffusé normalement
**Métadonnées** :
- Champ `is_premium` (boolean) en base
- Index sur ce champ pour requêtes rapides
- Cache Redis : `content:{id}:premium` (TTL 1h)
**Justification** :
- **Liberté créateur** : chaque créateur choisit sa stratégie (freemium, tout gratuit, tout premium)
- **Incitation Premium** : contenu exclusif = argument fort pour s'abonner
- **Équité** : un petit créateur peut tout mettre en premium, un gros peut tout offrir gratuitement
---
### 9.7 Obligations fiscales
**RoadWave génère automatiquement** :
| Document | Fréquence | Destinataire | Base légale |
|----------|-----------|--------------|-------------|
| **Relevé mensuel PDF** | Chaque mois | Créateur | Transparence |
| **Export CSV comptable** | À la demande | Créateur + expert-comptable | Facilitation déclarations |
| **DAS2 annuel** | **Tous montants (même <1200€)** | Impôts (DGFIP) | Obligation légale France + conformité maximale |
**Décision DAS2 systématique** :
- RoadWave envoie **DAS2 à la DGFIP** pour tous créateurs monétisés
- Déclaration annuelle en janvier N+1 (revenus année N)
- **Aucun seuil minimum** (même 50€ déclaré)
- Créateur reçoit copie par email + disponible dashboard
**Justification juridique** :
> Bien que le seuil légal DAS2 soit 1200€/an, rien n'interdit de déclarer les montants inférieurs. Au contraire, cela renforce la transparence et protège RoadWave en cas de contrôle fiscal.
**Avantages** :
-**Conformité maximale** : aucune zone grise
-**Protection juridique RoadWave** : traçabilité totale
-**Simplicité technique** : même processus pour tous
-**Créateur a justificatif** : même petits montants
-**Coût 0€** : DAS2 = déclaration obligatoire gratuite
**Modèle email créateur (janvier N+1)** :
```
Objet : Votre déclaration fiscale 2026 RoadWave
Bonjour [Créateur],
Vos revenus RoadWave 2026 ont été déclarés aux impôts (DAS2) :
- Revenus publicité : XXX.XX€
- Revenus Premium : XXX.XX€
- Total déclaré : XXX.XX€
Cette déclaration a été transmise à la DGFIP.
Vous devez inclure ce montant dans votre déclaration personnelle.
Télécharger le justificatif : [Lien PDF]
Cordialement,
L'équipe RoadWave
```
**Créateur responsable de** :
- Déclarer ses revenus à l'URSSAF (cotisations sociales auto-entrepreneur ou IS/IR)
- Déclarer ses revenus aux impôts (IR ou IS selon statut)
- Gérer sa TVA si applicable (franchise en base jusqu'à ~37K€/an en micro-BNC)
- Conserver justificatifs **10 ans** (obligation légale comptable)
**Mangopay transmet automatiquement** :
- Données aux autorités fiscales EU via **DAC7** (directive 2021/514)
- Justificatif de chaque virement (preuve bancaire pour comptabilité créateur)
**Exemple DAS2** :
```
Si créateur a touché 2500€ en 2026 :
→ RoadWave envoie DAS2 aux impôts en janvier 2027
→ Créateur reçoit copie par email
→ Créateur doit déclarer ces 2500€ dans sa déclaration annuelle
```
**Justification** :
- **Conformité légale** : RoadWave doit déclarer revenus versés (DAS2, DAC7)
- **Responsabilité fiscale** : Le créateur reste responsable de sa déclaration (impossible de gérer pour lui)
- **Automatisation** : Minimise charge administrative côtés créateur et plateforme
---
### 9.8 Désactivation et suspension monétisation
**Créateur peut** :
- Désactiver temporairement (vacances, pause création)
- Réactiver sans refaire KYC si données à jour (<2 ans)
- Solde conservé pendant désactivation
**Plateforme suspend automatiquement si** :
| Motif | Action | Réversible |
|-------|--------|------------|
| **Strike 3+ actif** | Suspension immédiate | Oui, après résolution strikes |
| **Compte bancaire invalide** | Suspension après 3 échecs virement | Oui, après mise à jour RIB |
| **Documents KYC expirés** | Suspension avec préavis 30j | Oui, après renouvellement docs |
| **Fraude détectée** | Suspension immédiate + enquête | Cas par cas |
**Suppression définitive si** :
- Demande du créateur (solde versé sous 30 jours)
- Inactivité 24 mois + solde <50€ (purge RGPD)
- Ban définitif compte (Strike 4)
**Notification** :
- Email + in-app pour toute suspension
- Raison explicite fournie
- Procédure de réactivation indiquée
**Justification** :
- **Flexibilité** : créateur peut faire pause sans perdre statut
- **Sécurité** : plateforme doit pouvoir suspendre en cas problème légal/technique
- **RGPD** : suppression auto données inactives après délai raisonnable
---
## Récapitulatif Section 9