========================================== Guide Utilisateur : Comptable ========================================== :Version: 1.0.0 :Date: 10 novembre 2025 :Public: Comptables et experts-comptables :Voir aussi: :doc:`syndic-guide` | :doc:`owner-guide` | :doc:`board-member-guide` 📋 Vue d'ensemble ================= Ce guide explique comment utiliser **KoproGo** en tant que **comptable** d'une ou plusieurs copropriĂ©tĂ©s. Vous y trouverez : - ✅ Plan Comptable Minimum NormalisĂ© (PCMN) belge conforme AR 12/07/2012 - ✅ Gestion comptable multi-organisations - ✅ Écritures comptables et imputations - ✅ GĂ©nĂ©ration de rapports financiers (bilan, compte de rĂ©sultats) - ✅ TVA belge (6%, 12%, 21%) - ✅ Exports comptables pour logiciels tiers - ✅ ClĂŽture d'exercice et reports Ă  nouveau 🚀 Premiers pas ================ Connexion et rĂŽle multi-organisations -------------------------------------- 1. **Connexion** : ``POST /api/v1/auth/login`` .. code-block:: json { "email": "comptable@cabinet-example.com", "password": "votre_mot_de_passe" } 2. **VĂ©rification des rĂŽles** : ``GET /api/v1/auth/me`` .. code-block:: json { "id": "user-uuid", "email": "comptable@cabinet-example.com", "roles": [ { "role_id": "role-1-uuid", "role_type": "Accountant", "organization_id": "residence-les-erables-uuid", "organization_name": "RĂ©sidence Les Érables" }, { "role_id": "role-2-uuid", "role_type": "Accountant", "organization_id": "residence-jardins-uuid", "organization_name": "RĂ©sidence Les Jardins" } ], "active_role": "role-1-uuid" } 3. **Changer d'organisation** : ``POST /api/v1/auth/switch-role`` .. code-block:: json { "role_id": "role-2-uuid" } Le rĂŽle actif dĂ©termine quelle copropriĂ©tĂ© vous gĂ©rez. Toutes les opĂ©rations comptables sont isolĂ©es par ``organization_id``. 📊 Plan Comptable PCMN Belge ============================== Vue d'ensemble du PCMN ---------------------- KoproGo implĂ©mente le **Plan Comptable Minimum NormalisĂ©** conformĂ©ment Ă  l'ArrĂȘtĂ© Royal du 12/07/2012. **90 comptes prĂ©-seed Ă©s** organisĂ©s en 9 classes : .. list-table:: :header-rows: 1 :widths: 10 20 40 30 * - Classe - Type - Description - Exemples * - **1** - Passif - Capital, rĂ©serves, provisions - 100 Capital, 130 RĂ©serves, 14 Provisions * - **2** - Actif - Immobilisations - 220 BĂątiments, 221 Terrains, 24 Mobilier * - **3** - Actif - Stock et encours - 30 MatiĂšres premiĂšres, 32 Marchandises * - **4** - Actif/Passif - CrĂ©ances et dettes - 400 Fournisseurs, 440 Clients, 451 TVA * - **5** - Actif - Banque et caisse - 550 Banque, 551 CCP, 57 Caisse * - **6** - Charges - Charges d'exploitation - 610 Charges immobiliĂšres, 61 Services * - **7** - Produits - Produits d'exploitation - 700 Charges locatives, 74 Produits divers * - **8** - Hors-bilan - Droits et engagements - 80 Garanties, 81 Engagements * - **0** - SpĂ©cial - Comptes gĂ©nĂ©raux (non utilisĂ© pour copropriĂ©tĂ©s) - - Consulter le plan comptable ---------------------------- **Lister tous les comptes** : .. code-block:: bash GET /api/v1/accounts?organization_id={uuid} **Rechercher par code** : .. code-block:: bash GET /api/v1/accounts/code/451000 **RĂ©ponse** : .. code-block:: json { "id": "account-uuid", "code": "451000", "name": "TVA Ă  rĂ©cupĂ©rer", "account_type": "Asset", "parent_code": "45", "organization_id": "org-uuid", "is_active": true, "created_at": "2025-01-01T00:00:00Z" } CrĂ©er un compte personnalisĂ© ----------------------------- **Endpoint** : ``POST /api/v1/accounts`` .. code-block:: json { "code": "612500", "name": "Frais de gestion syndic", "account_type": "Expense", "parent_code": "61", "organization_id": "org-uuid" } **Validation** : - ✅ Code unique par organisation - ✅ Type de compte valide (Asset, Liability, Equity, Income, Expense, OffBalance) - ✅ Parent code doit exister (si spĂ©cifiĂ©) - ✅ HiĂ©rarchie cohĂ©rente (ex: compte 612500 sous parent 61) DĂ©sactiver un compte -------------------- .. code-block:: json PUT /api/v1/accounts/{account_id} { "is_active": false } Les comptes dĂ©sactivĂ©s ne peuvent plus ĂȘtre utilisĂ©s pour de nouvelles Ă©critures mais restent visibles dans l'historique. Seed initial du PCMN -------------------- Pour une nouvelle organisation : .. code-block:: bash POST /api/v1/accounts/seed/belgian-pcmn?organization_id={uuid} CrĂ©e automatiquement les ~90 comptes du PCMN belge standard. 💰 Gestion comptable ===================== Écritures comptables -------------------- **Structure d'une Ă©criture** : .. code-block:: json { "date": "2025-11-10", "description": "Paiement facture Ă©lectricitĂ© novembre", "lines": [ { "account_code": "610100", "description": "ÉlectricitĂ© communs", "debit": 500.00, "credit": 0.00 }, { "account_code": "451000", "description": "TVA rĂ©cupĂ©rable (21%)", "debit": 105.00, "credit": 0.00 }, { "account_code": "550000", "description": "Paiement banque", "debit": 0.00, "credit": 605.00 } ] } **Principe de la partie double** : .. code-block:: text DĂ©bit total = CrĂ©dit total 500.00 + 105.00 = 605.00 ✅ Imputation automatique des dĂ©penses ------------------------------------ Lors de la crĂ©ation d'une dĂ©pense avec lignes de facturation, KoproGo gĂ©nĂšre automatiquement les imputations comptables : **Exemple** : Facture d'entretien 1,000€ HT + 21% TVA .. code-block:: json POST /api/v1/expenses { "building_id": "building-uuid", "description": "Entretien espaces verts - Novembre 2025", "expense_date": "2025-11-10", "category": "Maintenance", "line_items": [ { "description": "Tonte et taille", "quantity": 10.0, "unit_price": 100.00, "vat_rate": 0.21 } ] } **Imputations gĂ©nĂ©rĂ©es** : .. code-block:: text 610300 Entretien espaces verts 1,000.00 € (DĂ©bit) 451000 TVA Ă  rĂ©cupĂ©rer 210.00 € (DĂ©bit) 440000 Fournisseurs € 1,210.00 (CrĂ©dit) TVA belge --------- **Taux supportĂ©s** : .. list-table:: :header-rows: 1 :widths: 20 40 40 * - Taux - Application - Compte PCMN * - **6%** - Produits de premiĂšre nĂ©cessitĂ©, travaux rĂ©novation Ă©nergĂ©tique - 451000 (TVA rĂ©cupĂ©rable) * - **12%** - Restauration, certains travaux immobiliers - 451000 (TVA rĂ©cupĂ©rable) * - **21%** - Taux standard (services, maintenance, etc.) - 451000 (TVA rĂ©cupĂ©rable) **DĂ©claration TVA** : .. code-block:: bash GET /api/v1/reports/vat-declaration?organization_id={uuid}&quarter=4&year=2025 .. code-block:: json { "period": "2025-Q4", "vat_collected": 2500.00, "vat_deductible": 3200.00, "vat_balance": -700.00, "status": "ToReclaim", "details": { "vat_6_percent": { "base": 5000.00, "vat": 300.00 }, "vat_12_percent": { "base": 0.00, "vat": 0.00 }, "vat_21_percent": { "base": 13809.52, "vat": 2900.00 } } } Charges locatives et appels de fonds ------------------------------------- **Comptabilisation appel de fonds trimestriel** : .. code-block:: json POST /api/v1/accounting/journal-entries { "date": "2025-10-01", "description": "Appel de fonds T4 2025", "lines": [ { "account_code": "440000", "description": "CrĂ©ance copropriĂ©taires", "debit": 10800.00, "credit": 0.00 }, { "account_code": "700000", "description": "Charges locatives", "debit": 0.00, "credit": 10800.00 } ] } **Comptabilisation encaissement** : .. code-block:: json { "date": "2025-10-25", "description": "Paiement charges T4 - Copro Dupont", "lines": [ { "account_code": "550000", "description": "Banque", "debit": 450.00, "credit": 0.00 }, { "account_code": "440000", "description": "CrĂ©ance copropriĂ©taires", "debit": 0.00, "credit": 450.00 } ] } Grand livre ----------- **Consulter le grand livre d'un compte** : .. code-block:: bash GET /api/v1/accounting/ledger?account_code=550000&start_date=2025-01-01&end_date=2025-12-31 .. code-block:: json { "account_code": "550000", "account_name": "Banque", "period": "2025-01-01 to 2025-12-31", "opening_balance": 15000.00, "entries": [ { "date": "2025-01-15", "description": "Encaissement charges T1", "debit": 10800.00, "credit": 0.00, "balance": 25800.00 }, { "date": "2025-01-20", "description": "Paiement facture Ă©lectricitĂ©", "debit": 0.00, "credit": 605.00, "balance": 25195.00 } ], "total_debit": 125000.00, "total_credit": 98000.00, "closing_balance": 42000.00 } Balance comptable ----------------- **Balance gĂ©nĂ©rale** : .. code-block:: bash GET /api/v1/accounting/trial-balance?organization_id={uuid}&date=2025-11-10 .. code-block:: json { "date": "2025-11-10", "accounts": [ { "account_code": "100000", "account_name": "Capital", "debit": 0.00, "credit": 50000.00, "balance": -50000.00 }, { "account_code": "220000", "account_name": "BĂątiments", "debit": 500000.00, "credit": 0.00, "balance": 500000.00 }, { "account_code": "550000", "account_name": "Banque", "debit": 125000.00, "credit": 83000.00, "balance": 42000.00 } ], "total_debit": 625000.00, "total_credit": 625000.00, "balanced": true } 📈 Rapports financiers ======================= Bilan comptable --------------- **Endpoint** : ``GET /api/v1/reports/balance-sheet?organization_id={uuid}&year=2025`` .. code-block:: json { "period": "2025", "assets": { "fixed_assets": { "buildings": 500000.00, "equipment": 25000.00, "total": 525000.00 }, "current_assets": { "receivables": 15000.00, "bank": 42000.00, "cash": 1500.00, "total": 58500.00 }, "total_assets": 583500.00 }, "liabilities": { "equity": { "capital": 50000.00, "reserves": 120000.00, "retained_earnings": 15000.00, "total": 185000.00 }, "long_term_liabilities": { "provisions": 10000.00, "total": 10000.00 }, "current_liabilities": { "suppliers": 8500.00, "total": 8500.00 }, "total_liabilities": 203500.00 }, "balance_check": { "assets": 583500.00, "liabilities": 203500.00, "difference": 380000.00, "balanced": true } } **Export PDF** : .. code-block:: bash GET /api/v1/reports/balance-sheet.pdf?organization_id={uuid}&year=2025 Compte de rĂ©sultats -------------------- **Endpoint** : ``GET /api/v1/reports/income-statement?organization_id={uuid}&year=2025`` .. code-block:: json { "period": "2025", "income": { "rental_charges": 43200.00, "other_income": 2500.00, "total_income": 45700.00 }, "expenses": { "property_expenses": 12000.00, "utilities": 18000.00, "maintenance": 8500.00, "management_fees": 3600.00, "insurance": 4200.00, "other_expenses": 1200.00, "total_expenses": 47500.00 }, "operating_result": -1800.00, "financial_result": 150.00, "net_result": -1650.00 } **Analyse trimestrielle** : .. code-block:: bash GET /api/v1/reports/income-statement?organization_id={uuid}&year=2025&quarter=4 Rapport d'activitĂ© ------------------ .. code-block:: bash GET /api/v1/reports/activity-report?organization_id={uuid}&year=2025 Inclut : - RĂ©sumĂ© financier (chiffre d'affaires, charges, rĂ©sultat) - Évolution trĂ©sorerie - ImpayĂ©s et taux de recouvrement - Charges ventilĂ©es par catĂ©gorie - Comparaison N vs N-1 đŸ“€ Exports comptables ====================== Export Noalyss -------------- **Format compatible Noalyss** (logiciel de comptabilitĂ© GPL) : .. code-block:: bash GET /api/v1/exports/noalyss?organization_id={uuid}&start_date=2025-01-01&end_date=2025-12-31 **RĂ©ponse** : Fichier CSV avec Ă©critures comptables au format Noalyss. Export FEC (Fichier des Écritures Comptables) ---------------------------------------------- **Format standard pour administrations fiscales** : .. code-block:: bash GET /api/v1/exports/fec?organization_id={uuid}&year=2025 **Format** : Fichier texte tabulĂ© conforme Ă  la norme FEC. Export Excel ------------ .. code-block:: bash GET /api/v1/exports/excel?organization_id={uuid}&report_type=balance-sheet&year=2025 **Formats supportĂ©s** : - ``balance-sheet`` : Bilan comptable - ``income-statement`` : Compte de rĂ©sultats - ``trial-balance`` : Balance gĂ©nĂ©rale - ``ledger`` : Grand livre - ``vat-declaration`` : DĂ©claration TVA Export JSON ----------- .. code-block:: bash GET /api/v1/exports/json?organization_id={uuid}&year=2025 Toutes les donnĂ©es comptables de l'annĂ©e au format JSON structurĂ©. 🔄 ClĂŽture d'exercice ====================== PrĂ©paration de la clĂŽture -------------------------- **VĂ©rifications prĂ©alables** : 1. ✅ Balance Ă©quilibrĂ©e (dĂ©bit = crĂ©dit) 2. ✅ Toutes les factures imputĂ©es 3. ✅ Rapprochements bancaires effectuĂ©s 4. ✅ TVA dĂ©clarĂ©e et soldĂ©e 5. ✅ Provisions Ă©valuĂ©es **Checklist clĂŽture** : .. code-block:: bash GET /api/v1/accounting/year-end-checklist?organization_id={uuid}&year=2025 .. code-block:: json { "year": 2025, "checks": [ { "item": "Balance Ă©quilibrĂ©e", "status": "OK", "details": "DĂ©bit = CrĂ©dit (625,000€)" }, { "item": "Factures en attente", "status": "WARNING", "details": "3 factures non imputĂ©es" }, { "item": "Rapprochement bancaire", "status": "OK", "details": "Dernier rapprochement : 31/12/2025" }, { "item": "DĂ©claration TVA Q4", "status": "PENDING", "details": "À soumettre avant 20/01/2026" } ], "ready_for_closure": false } ExĂ©cuter la clĂŽture ------------------- .. code-block:: bash POST /api/v1/accounting/year-end-close?organization_id={uuid}&year=2025 **OpĂ©rations effectuĂ©es** : 1. **Calcul du rĂ©sultat** : Solde comptes 6 et 7 → compte 129 (RĂ©sultat de l'exercice) 2. **Solde des comptes de gestion** : Comptes 6 et 7 remis Ă  zĂ©ro 3. **Reports Ă  nouveau** : Comptes de bilan conservĂ©s 4. **Verrouillage** : Écritures N non modifiables 5. **Ouverture N+1** : Balances d'ouverture créées .. code-block:: json { "year": 2025, "closure_date": "2025-12-31T23:59:59Z", "net_result": -1650.00, "status": "Closed", "opening_balance_2026": { "total_assets": 583500.00, "total_liabilities": 203500.00, "equity": 183350.00 } } RĂ©ouverture d'exercice ----------------------- En cas d'erreur, rĂ©ouverture possible avec rĂŽle ``SuperAdmin`` : .. code-block:: bash POST /api/v1/accounting/year-end-reopen?organization_id={uuid}&year=2025 **Attention** : OpĂ©ration sensible, gĂ©nĂšre un audit log. 🔍 ContrĂŽles et audits ======================= Audit trail ----------- Toutes les opĂ©rations comptables sont tracĂ©es : .. code-block:: bash GET /api/v1/audit-logs?entity_type=JournalEntry&organization_id={uuid} .. code-block:: json [ { "timestamp": "2025-11-10T10:30:00Z", "user": "comptable@example.com", "action": "CREATE", "entity_type": "JournalEntry", "entity_id": "entry-uuid", "details": { "description": "Paiement facture Ă©lectricitĂ©", "amount": 605.00 }, "ip_address": "192.168.1.100" } ] Rapprochement bancaire ----------------------- .. code-block:: bash GET /api/v1/accounting/bank-reconciliation?account_code=550000&date=2025-11-10 .. code-block:: json { "account": "550000 - Banque", "date": "2025-11-10", "book_balance": 42000.00, "bank_statement_balance": 41800.00, "outstanding_items": [ { "date": "2025-11-08", "description": "ChĂšque #1234 en circulation", "amount": -200.00 } ], "reconciled_balance": 41800.00, "status": "Reconciled" } DĂ©tection d'anomalies ---------------------- .. code-block:: bash GET /api/v1/accounting/anomalies?organization_id={uuid} .. code-block:: json { "anomalies": [ { "type": "UnbalancedEntry", "severity": "HIGH", "entry_id": "entry-uuid", "description": "Écriture dĂ©sĂ©quilibrĂ©e : DĂ©bit 500€ ≠ CrĂ©dit 505€" }, { "type": "MissingVAT", "severity": "MEDIUM", "expense_id": "expense-uuid", "description": "Facture sans TVA imputĂ©e" }, { "type": "FutureDate", "severity": "LOW", "entry_id": "entry-uuid", "description": "Écriture datĂ©e du futur (2025-12-25)" } ] } 📊 Tableau de bord comptable ============================== Vue d'ensemble financiĂšre -------------------------- .. code-block:: bash GET /api/v1/accounting/dashboard?organization_id={uuid} .. code-block:: json { "current_balance": 42000.00, "receivables": 15000.00, "payables": 8500.00, "cash_flow": { "last_30_days": { "inflows": 12500.00, "outflows": 9800.00, "net": 2700.00 } }, "overdue_invoices": { "count": 8, "total_amount": 3600.00 }, "alerts": [ { "type": "LowBalance", "message": "TrĂ©sorerie < 2 mois de charges", "severity": "WARNING" } ] } Indicateurs de performance --------------------------- **KPIs comptables** : .. code-block:: bash GET /api/v1/accounting/kpis?organization_id={uuid}&year=2025 .. code-block:: json { "year": 2025, "kpis": { "collection_rate": 0.92, "average_payment_delay": 15.5, "operating_margin": -0.04, "cash_coverage_months": 2.8, "budget_variance": { "income": 0.03, "expenses": -0.07 } } } đŸ› ïž Outils pour comptables =========================== Calculatrice TVA ---------------- .. code-block:: bash GET /api/v1/tools/vat-calculator?amount=1000&vat_rate=0.21&mode=excl .. code-block:: json { "amount_excl_vat": 1000.00, "vat_amount": 210.00, "amount_incl_vat": 1210.00, "vat_rate": 0.21 } **Modes** : - ``excl`` : Montant HT → Calcul TTC - ``incl`` : Montant TTC → Calcul HT GĂ©nĂ©rateur de lettrage ----------------------- .. code-block:: bash POST /api/v1/tools/auto-match-entries?account_code=440000&organization_id={uuid} Lettrage automatique des crĂ©ances/dettes (matching invoices ↔ payments). 🔐 SĂ©curitĂ© et conformitĂ© =========================== Multi-tenant strict ------------------- - ✅ Isolation totale par ``organization_id`` - ✅ Impossible d'accĂ©der aux donnĂ©es d'une autre organisation - ✅ Validation JWT avec rĂŽle actif Permissions comptables ---------------------- .. list-table:: :header-rows: 1 :widths: 40 20 20 20 * - Action - Accountant - Syndic - Owner * - Lecture plan comptable - ✅ - ✅ - ❌ * - CrĂ©ation comptes - ✅ - ❌ - ❌ * - Écritures comptables - ✅ - ❌ - ❌ * - ClĂŽture d'exercice - ✅ - ❌ - ❌ * - Lecture rapports - ✅ - ✅ - ❌ Conservation des donnĂ©es ------------------------ **DurĂ©e lĂ©gale (Belgique)** : **7 ans minimum** KoproGo conserve automatiquement : - Toutes les Ă©critures comptables - PiĂšces justificatives (factures, contrats) - Audit logs - DĂ©clarations TVA Backup automatique chiffrĂ© (GPG + S3). 📚 Ressources et support ========================= Documentation technique ----------------------- - **Plan comptable PCMN** : :doc:`../BELGIAN_ACCOUNTING_PCMN` - **Guide du syndic** : :doc:`syndic-guide` - **API Reference** : https://api.koprogo.com/docs CrĂ©dits ------- L'implĂ©mentation du PCMN belge s'inspire du projet **Noalyss** : - **Projet** : https://gitlab.com/noalyss/noalyss - **Licence** : GPL-2.0-or-later - **Auteur** : Dany De Bontridder Merci au projet Noalyss pour sa rĂ©fĂ©rence inestimable. Support ------- - **Email** : support@koprogo.com - **Documentation** : https://docs.koprogo.com - **Issues GitHub** : https://github.com/gilmry/koprogo/issues --- **Version** : 1.0.0 | **DerniĂšre mise Ă  jour** : 10 novembre 2025