---
name: Fonctionnalité corrections de solde
description: Table corrections_solde, route /api/corrections, intégration dashboard/fiscal/remboursements pour réconcilier les micro-écarts de flat-tax
type: project
originSessionId: 94c97348-4f1d-4ff7-ba4b-e94dda6b32ea
---
Nouvelle fonctionnalité implémentée pour corriger les micro-écarts (0,01 €) de calcul de flat-tax sur les plateformes françaises.

**Modèle :** table `corrections_solde` (id, investisseur_id, plateforme_id, date, montant, notes, created_at). Séparée de `remboursements` pour éviter de rendre `investissement_id` nullable (migration SQLite complexe).

**Déclenchement :** après chaque dépôt/retrait sur une plateforme `fiscalite = 'flat_tax'`, une `CorrectionModal` s'ouvre et demande le solde réel constaté. Si |écart| ≥ 0,005 €, une correction est créée automatiquement via POST `/api/corrections`.

**Solde attendu proposé par défaut :**
- Retrait → 0 € (cas typique : vider le porte-monnaie)
- Dépôt → solde calculé avant l'opération + montant du dépôt

**Impact :**
- `dashboard.js` : `correctionsPerPlat` s'ajoute au `walletMap` par plateforme ; route `GET /solde-historique` ajoutée (calcul du solde à une date passée, filtre `date <= :date` sur les 5 composantes)
- `fiscal2778.js` : corrections ajoutées à `net_recu`, ligne dédiée dans le récapitulatif, tableau séparé, incluses dans l'export CSV
- `Remboursements.jsx` : corrections mergées dans `tableRows` avec flag `_is_correction: true`, badge "CORRECTION" ambré, supprimables via menu ⋮
- `DepotsRetraits.jsx` : corrections affichées comme nouveau type de mouvement dans l'onglet Mouvements (`normalizedCorrections` via useMemo, `type: 'correction'`, id préfixé `corr_${id}`). Menu ⋮ sur chaque ligne (Modifier / Correction de solde / Supprimer). Option "Corrections de solde" dans le filtre type.

**Route :** `/api/corrections` (GET filtré par scope, POST avec validation Zod, DELETE avec vérification ownership)  
**Route solde historique :** `GET /api/dashboard/solde-historique?plateforme_id=X&date=Y`

**Why:** Les arrondi de prélèvements sociaux/IR créent des écarts cumulatifs entre le solde calculé et le solde réel de la plateforme.

**How to apply:** Ne pas modifier `remboursements` pour ajouter ces corrections — toujours passer par la table dédiée.
