Aller au contenu principal

Configuration de Beancount pour les Startups

Une base pratique, copier-coller pour gérer les livres comptables de votre startup en texte brut. Fonctionne de la pré-amorçage au Series A. Ceci n'est pas un conseil juridique ou fiscal.


Diriger une startup signifie porter plusieurs casquettes, et l'une des plus critiques est celle de « comptable ». Avant de pouvoir vous offrir un logiciel coûteux ou un comptable à temps plein, vous avez besoin d'un système précis, vérifiable, et qui ne vous enfermera pas dans un écosystème propriétaire. Voici Beancount : un système de comptabilité open-source et en texte brut.

Utiliser Beancount signifie que votre grand livre financier vit dans des fichiers texte, aux côtés de votre code dans un dépôt Git. C'est versionné, transparent et infiniment personnalisable. Ce guide fournit une configuration complète et copier-coller pour gérer les livres de votre startup, de l'incorporation jusqu'au Series A, basée sur des principes solides de comptabilité d'exercice.

1) Ce que vous allez mettre en place

Ce guide vous accompagnera dans la création d'une configuration comptable complète et de qualité professionnelle. À la fin, vous aurez :

  • Un grand livre unique source de vérité géré dans Git (main.beancount), vous offrant un historique complet et vérifiable des finances de votre entreprise.
  • Fava pour de magnifiques rapports et graphiques. Fava est une interface web pour Beancount qui transforme vos fichiers texte en comptes de résultat, bilans et analyses de flux de trésorerie interactifs.
  • Une structure pour les importateurs que vous pourrez ajouter plus tard pour automatiser la saisie des transactions depuis vos comptes bancaires, cartes de crédit, PayPal et Stripe. Nous commencerons manuellement pour apprendre le système, puis nous automatiserons.
  • Un plan comptable prêt pour la comptabilité d'exercice, conçu pour les startups modernes, avec un support intégré pour les revenus différés, les charges payées d'avance et les dettes de paie.
  • Des éléments de base pour le financement d'amorçage, y compris des exemples clairs pour enregistrer les SAFE (comme passif ou capitaux propres) et les billets convertibles avec intérêts.

2) Structure du projet (à déposer dans votre dépôt)

Commencez par créer cette structure de répertoires dans le dépôt Git de votre entreprise. Cette organisation maintient votre grand livre propre et évolutif.

/ledger
  main.beancount
  /includes
    accounts.beancount
    opening-balances.beancount
    policies.beancount
  /documents
    /bank
    /invoices
    /receipts
  /importers              # optionnel ; à ajouter lorsque vous automatiserez l'ingestion CSV
    bank_importer.py
    card_importer.py
  • main.beancount : Le fichier central qui rassemble tout.
  • /includes : Contient votre plan comptable, vos soldes d'ouverture et vos politiques comptables.
  • /documents : Un espace pour stocker les PDF de relevés bancaires, factures et reçus pour une piste d'audit claire.
  • /importers : Où vos futurs scripts Python pour analyser les CSV bancaires vivront.

3) Un main.beancount minimal et sensé

C'est le point d'entrée de votre grand livre. Il définit quelques options globales et inclut les autres fichiers composants. Copiez ce contenu dans ledger/main.beancount et personnalisez le titre.

option "title" "Acme, Inc. Ledger"
option "operating_currency" "USD"
option "documents" "ledger/documents"
 
include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"
 
; Si vous ajoutez plus tard des importateurs, vous ajouterez des lignes de plugin ici.
; plugin "beancount.plugins.implicit_prices"

4) Plan comptable de départ (comptabilité d'exercice d'abord)

Votre plan comptable est la liste complète des catégories pour les transactions financières de votre entreprise. Ce modèle de départ est conçu pour la comptabilité d'exercice, qui donne une image bien plus précise de la santé de votre entreprise que la comptabilité de caisse.

Placez ceci dans includes/accounts.beancount. N'hésitez pas à supprimer les comptes dont vous n'avez pas besoin immédiatement.

; --- Actifs ---
1970-01-01 open Assets:Bank:Checking              USD
1970-01-01 open Assets:Bank:Savings                USD
1970-01-01 open Assets:AR                         USD         ; Comptes clients
1970-01-01 open Assets:Prepaid:Software            USD
1970-01-01 open Assets:Prepaid:Insurance           USD
1970-01-01 open Assets:Deposits                    USD         ; Dépôts de garantie
1970-01-01 open Assets:Equipment                   USD
1970-01-01 open Assets:Intangibles                 USD
1970-01-01 open Assets:Crypto:BTC                  BTC
1970-01-01 open Assets:Other
 
; --- Passifs ---
1970-01-01 open Liabilities:AP                     USD         ; Comptes fournisseurs
1970-01-01 open Liabilities:CreditCard:Corporate   USD
1970-01-01 open Liabilities:DeferredRevenue        USD
1970-01-01 open Liabilities:Payroll:Withholding    USD
1970-01-01 open Liabilities:Payroll:EmployerTaxes  USD
1970-01-01 open Liabilities:SalesTax:CA            USD
1970-01-01 open Liabilities:SAFE                   USD
1970-01-01 open Liabilities:NotesPayable           USD
1970-01-01 open Liabilities:Other
 
; --- Capitaux propres ---
1970-01-01 open Equity:CommonStock                 USD
1970-01-01 open Equity:APIC                        USD         ; Prime d'émission
1970-01-01 open Equity:SAFE                        USD         ; Si vous classez les SAFE en capitaux propres
1970-01-01 open Equity:RetainedEarnings            USD
1970-01-01 open Equity:OpeningBalances             USD
 
; --- Revenus (soldes négatifs) ---
1970-01-01 open Income:Revenue:SaaS                USD
1970-01-01 open Income:Revenue:Services            USD
1970-01-01 open Income:Other                       USD
 
; --- Dépenses ---
1970-01-01 open Expenses:COGS                      USD
1970-01-01 open Expenses:Payroll:Wages             USD
1970-01-01 open Expenses:Payroll:EmployerTaxes     USD
1970-01-01 open Expenses:Benefits                  USD
1970-01-01 open Expenses:Contractors               USD
1970-01-01 open Expenses:Software:Subscriptions    USD
1970-01-01 open Expenses:Cloud                     USD
1970-01-01 open Expenses:Rent                      USD
1970-01-01 open Expenses:Meals                     USD
1970-01-01 open Expenses:Travel                    USD
1970-01-01 open Expenses:Marketing                 USD
1970-01-01 open Expenses:Legal                     USD
1970-01-01 open Expenses:Accounting                USD
1970-01-01 open Expenses:Insurance                 USD
1970-01-01 open Expenses:BankFees                  USD
1970-01-01 open Expenses:Taxes:Income              USD
1970-01-01 open Expenses:Taxes:Sales               USD
1970-01-01 open Expenses:Other                     USD

Notes

  • Les comptes de revenus sont négatifs car ils représentent des crédits en comptabilité en partie double. Ne vous inquiétez pas ; Fava inverse automatiquement les signes dans les rapports, donc vos revenus apparaîtront comme un nombre positif au compte de résultat.
  • Gardez des catégories étroites et utiles au départ. Il est beaucoup plus facile d'ajouter de nouveaux comptes plus tard que de nettoyer un plan comptable désordonné et trop granulaire.

5) Soldes d'ouverture (premier jour)

La première transaction de votre grand livre pose le décor. Elle enregistre l'état initial de vos comptes le jour où vous commencez le suivi. Placez cette transaction dans includes/opening-balances.beancount, en ajustant la date et les montants pour refléter votre position de départ réelle.

2025-01-01 * "Soldes d'ouverture"
  Assets:Bank:Checking              5 000,00 USD
  Liabilities:CreditCard:Corporate   -500,00 USD
  Equity:OpeningBalances           -4 500,00 USD

Cette écriture établit que l'entreprise a commencé avec 5 000 $ à la banque et un solde de 500 $ sur sa carte de crédit. Le compte Equity:OpeningBalances est un compte spécial utilisé pour garantir que la transaction équilibre à zéro, comme l'exige la comptabilité en partie double.


6) Transactions courantes de startup (copier-coller)

Voici des recettes pour les événements financiers les plus courants dans une startup en phase de démarrage. Copiez, collez et adaptez-les à votre usage.

Achat d'actions par le fondateur (simple, en devise uniquement)

Lorsque les fondateurs achètent leurs actions initiales à la valeur nominale, l'argent entre dans l'entreprise et est enregistré comme capitaux propres. Votre tableau de capitalisation (Carta, Pulley ou une feuille de calcul) est la source de vérité pour le nombre d'actions ; le grand livre ne comptabilise que les dollars.

2025-01-05 * "Achat d'actions du fondateur à la valeur nominale"
  Assets:Bank:Checking                800,00 USD
  Equity:CommonStock                   -0,80 USD
  Equity:APIC                        -799,20 USD
  ; 8 000 000 actions ordinaires @ 0,0001 $ — comptes maintenus hors grand livre

(Optionnel) Suivre vos propres actions comme une marchandise

Si vous souhaitez que le grand livre suive le nombre d'actions émises, vous pouvez définir votre action comme une « marchandise ». C'est plus complexe mais fournit un enregistrement plus complet dans le grand livre.

2025-01-05 commodity ACME
  name: "Acme, Inc. Common"
 
2025-01-05 * "Émission d'actions du fondateur"
  Assets:Bank:Checking                800,00 USD
  Equity:APIC                        -799,20 USD
  Equity:CommonStock           -8 000 000 ACME {0,0001 USD}

Entrée de fonds SAFE (choisir la classification)

Un SAFE (Simple Agreement for Future Equity) peut être traité soit comme un passif, soit comme une forme de capitaux propres (plus précisément, « capitaux propres mezzanine »). Consultez votre comptable pour choisir la bonne approche et soyez cohérent.

; (A) Classification en capitaux propres (mezzanine)
2025-02-01 * "SAFE post-money — SeedFund"
  Assets:Bank:Checking            500 000,00 USD
  Equity:SAFE                    -500 000,00 USD
 
; (B) Classification en passif (jusqu'à conversion)
2025-02-01 * "SAFE post-money — SeedFund"
  Assets:Bank:Checking            500 000,00 USD
  Liabilities:SAFE               -500 000,00 USD

Lorsqu'un tour de table à prix se clôture, vous reclasserez le solde du SAFE en actions privilégiées et prime d'émission en fonction des documents de clôture.

Billet convertible avec intérêts courus

Contrairement à un SAFE, un billet convertible est sans ambiguïté un passif qui accumule des intérêts. Vous enregistrerez les liquidités initiales puis comptabiliserez périodiquement la charge d'intérêts (par exemple, trimestriellement).

2025-03-01 * "Billet convertible — 6% annuel"
  Assets:Bank:Checking            250 000,00 USD
  Liabilities:NotesPayable       -250 000,00 USD
 
2025-06-30 * "Intérêts courus du billet T2"
  Expenses:Interest                 3 750,00 USD
  Liabilities:NotesPayable         -3 750,00 USD
  ; 250 000 * 6% * 0,25 = 3 750

Vente SaaS annuelle (revenus différés + reconnaissance mensuelle)

C'est une pierre angulaire de la comptabilité d'exercice. Lorsqu'un client paie d'avance pour une année, vous ne gagnez pas tous ces revenus d'un coup. Vous les comptabilisez comme un passif (DeferredRevenue) puis vous reconnaissez 1/12ème chaque mois.

2025-03-10 * "Abonnement annuel — AcmeCo — INV-001"
  Assets:AR                       1 200,00 USD
  Liabilities:DeferredRevenue    -1 200,00 USD
  narration: "Prépaiement SaaS annuel"
 
2025-03-20 * "Paiement INV-001"
  Assets:Bank:Checking            1 200,00 USD
  Assets:AR                      -1 200,00 USD
 
; Reconnaître le mois 1/12 (répéter mensuellement ou via script)
2025-04-01 * "Reconnaissance de revenus 1/12 — INV-001"
  Liabilities:DeferredRevenue       100,00 USD
  Income:Revenue:SaaS              -100,00 USD

Charge payée d'avance et amortissement

C'est l'inverse des revenus différés. Lorsque vous payez d'avance pour un service (comme un logiciel annuel ou une assurance), vous l'enregistrez comme un actif (Prepaid) puis vous « amortissez » ou comptabilisez une partie en charge chaque mois.

2025-03-01 * "Logiciel annuel payé d'avance"
  Assets:Prepaid:Software         1 200,00 USD
  Assets:Bank:Checking           -1 200,00 USD
 
2025-04-01 * "Amortissement du prépaiement 1/12"
  Expenses:Software:Subscriptions   100,00 USD
  Assets:Prepaid:Software          -100,00 USD

Paie (liquidités nettes, avec retenues + charges patronales)

Une écriture de paie comporte plusieurs parties : la charge de salaire brut, la charge fiscale patronale, les liquidités nettes versées aux employés, et le passif pour les impôts retenus qui doivent être reversés au gouvernement.

2025-04-15 * "Paie — 15 avril"
  Expenses:Payroll:Wages          15 000,00 USD
  Expenses:Payroll:EmployerTaxes   1 200,00 USD
  Liabilities:Payroll:Withholding -4 000,00 USD
  Assets:Bank:Checking           -12 200,00 USD

Perception et reversement de la taxe de vente (exemple CA)

Lorsque vous percevez la taxe de vente, ce n'est pas votre argent. C'est un passif que vous devez à l'État. Vous enregistrez le passif lorsque vous effectuez la vente et vous le soldez lorsque vous reversez la taxe.

2025-05-10 * "Facture #123 — CA imposable"
  Assets:AR                       1 088,75 USD
  Income:Revenue:SaaS              -999,00 USD
  Liabilities:SalesTax:CA           -89,75 USD
 
2025-06-05 * "Paiement #123"
  Assets:Bank:Checking            1 088,75 USD
  Assets:AR                      -1 088,75 USD
 
2025-07-20 * "Reversement taxe de vente CA T2"
  Liabilities:SalesTax:CA            89,75 USD
  Assets:Bank:Checking              -89,75 USD

FX et crypto (léger)

Beancount gère nativement plusieurs devises. Utilisez les directives price pour enregistrer les taux de change et la syntaxe de coût {} pour des transactions spécifiques.

2025-03-01 price EUR 1,0832 USD
 
2025-03-02 * "Frais AWS UE"
  Expenses:Cloud                     90,00 EUR
  Liabilities:CreditCard:Corporate  -90,00 EUR
 
2025-03-05 * "Achat de BTC pour tests"
  Assets:Crypto:BTC                   0,0200 BTC {3400,00 USD}
  Assets:Bank:Checking           -3 400,00 USD

7) Utiliser Fava (rapports en une commande)

Fava est la brillante interface web qui donne vie aux données Beancount. C'est la récompense de votre saisie minutieuse.

  • Installation : $ pip install fava
  • Exécution : $ fava ledger/main.beancount
  • Vues utiles : Compte de résultat (Income Statement), Bilan (Balance Sheet), Journal (pour filtrer par compte/étiquette), et Requête (Query) (pour des requêtes personnalisées de type SQL).

Filtres Fava rapides :

  • account:DeferredRevenue : Afficher toute l'activité de votre compte de revenus différés.
  • tag:#invoice-001 : Étiqueter les transactions liées à une facture spécifique et les filtrer.
  • from:2025-01-01 to:2025-12-31 : Se concentrer sur une période financière spécifique.

8) Liste de vérification de clôture mensuelle (15 à 45 min)

À la fin de chaque mois, parcourez cette liste de vérification pour vous assurer que vos livres sont exacts et à jour. Cette discipline rend la période fiscale et la diligence des investisseurs un jeu d'enfant.

  • Banque/cartes de crédit : Importez ou saisissez manuellement toutes les transactions. Conciliez les soldes avec vos relevés.
  • AR/AP : Comptabilisez toutes les factures émises et les factures reçues ; marquez les articles payés comme soldés.
  • Revenus : Comptabilisez les écritures mensuelles de reconnaissance de revenus pour tous les contrats prépayés.
  • Prépaiements : Amortissez 1/12ème (ou la fraction appropriée) de toutes les charges payées d'avance.
  • Paie : Comptabilisez l'écriture de journal à partir du rapport de votre fournisseur de paie.
  • Taxe de vente : Comptabilisez votre passif de taxe de vente pour le mois.
  • Instruments d'amorçage : Accumulez les intérêts sur tout billet convertible.
  • Vérifications de cohérence :
    • Votre chiffre d'affaires au compte de résultat correspond-il approximativement à votre MRR/ARR attendu ?
    • Votre taux de consommation et votre piste de financement correspondent-ils à votre plan financier ?
    • $ bean-check s'exécute-t-il sans erreur ? Les rapports de Fava semblent-ils corrects ?
  • Commitez dans Git avec une note brève et cohérente (par exemple, close: 2025-04).

9) Métadonnées et documents (faciliter les audits)

Votre grand livre doit être auto-documenté. Utilisez des métadonnées et liez les documents sources pour créer une piste d'audit infaillible. Vous-même (et votre comptable) nous remercierez plus tard.

  • Ajoutez des métadonnées comme payee:, narration:, invoice:, customer:, ou link: aux transactions pour plus de clarté.
  • Joignez les PDF sources (factures, reçus, relevés bancaires) à votre dossier ledger/documents/ et liez-les en utilisant la balise de métadonnées document:.
  • Utilisez des étiquettes (#payroll, #saas, #vendor-aws, #invoice-001) pour faciliter le filtrage et l'analyse.

Exemple :

2025-03-10 * "Abonnement annuel — AcmeCo" #saas #invoice-001
  payee: "AcmeCo"
  invoice: "INV-001"
  document: "documents/invoices/INV-001.pdf"
  Assets:AR                       1 200,00 USD
  Liabilities:DeferredRevenue    -1 200,00 USD

10) Importer plus tard (quand vous avez le temps)

Commencez par saisir les transactions manuellement pendant le premier ou les deux premiers mois. C'est la meilleure façon d'apprendre le système et vos propres habitudes de dépenses. Une fois à l'aise, vous pouvez écrire de simples importateurs Python pour automatiser le processus et réduire les tâches répétitives.

Un ordre de bataille typique pour les importateurs :

  1. CSV bancaire → Assets:Bank:Checking
  2. CSV de carte de crédit → Liabilities:CreditCard:Corporate
  3. Rapports de paiement Stripe/PayPal → Mappage des revenus et des espèces

Gardez vos importateurs dans /ledger/importers et examinez leurs transactions générées comme vous le feriez pour tout autre changement de code.


11) Politiques (à mettre dans includes/policies.beancount)

Ce fichier est l'endroit où vous documentez vos décisions comptables pour plus de cohérence. C'est un simple fichier texte, mais il est crucial pour maintenir la discipline.

  • Comptabilité d'exercice ; reconnaître les revenus SaaS au prorata.
  • Devise fonctionnelle est l'USD ; enregistrer le FX au taux du jour ou au taux de transaction.
  • Seuil de capitalisation (par exemple, les articles de plus de 2 500 $ deviennent un article Assets:Equipment ; sinon, ils sont passés en charge immédiatement).
  • Déplacements/Repas : Le but professionnel doit être documenté dans le champ narration.
  • Enregistrement des capitaux propres : Indiquez explicitement si vous utilisez la méthode devise uniquement ou actions-marchandise.
  • SAFE/billets : Documentez votre classification choisie (Passif ou Capitaux propres).

Exemple policies.beancount :

; Politique : Comptabilité d'exercice, revenus différés et reconnus mensuellement.
; Politique : USD comme devise fonctionnelle. Les gains/pertes de change sont dérivés des données de coût/prix.
; Politique : Capitaliser les actifs corporels de plus de 2 500 $ avec un amortissement linéaire sur 3 ans.
; Politique : Les SAFE sont enregistrés comme passifs jusqu'à leur conversion lors d'un tour de table à prix.

12) Dépannage rapide

  • Les revenus semblent négatifs dans le Journal : C'est correct ! Les revenus sont un crédit. Les rapports Fava les afficheront comme un nombre positif.
  • Les soldes ne s'équilibrent pas à zéro : Vous avez probablement une transaction incomplète. Les postings d'une transaction doivent totaliser zéro. Utilisez la vue Journal de Fava pour trouver le coupable. En mesure temporaire, vous pouvez ajouter une jambe d'équilibrage à un compte Equity:Suspense pour rendre le fichier valide, puis enquêter et corriger la cause racine.
  • Écarts de change : Assurez-vous d'avoir des directives price pour les dates concernées ou de spécifier la base de coût dans votre devise de fonctionnement, comme 90,00 EUR {97,49 USD}.

13) Ce qu'il faut suivre en dehors du grand livre (garder les liens)

Beancount est destiné à vos transactions financières, mais certaines choses sont mieux gérées dans des systèmes dédiés. La clé est de les lier depuis votre grand livre.

  • Tableau de capitalisation : Utilisez Carta, Pulley ou une feuille de calcul. Liez les documents de clôture signés de vos transactions de financement dans Beancount.
  • Consentements du conseil, plan d'équité, rapports 409A : Stockez-les dans un endroit sécurisé et ajoutez des métadonnées link: aux transactions d'équité pertinentes.
  • Déclarations fiscales : Stockez les PDF finaux et liez-les à partir d'une transaction de clôture de fin d'année.

Fichier de départ copier-coller (tout-en-un)

Si vous préférez commencer avec un seul fichier avant de passer à la structure d'inclusion, vous pouvez simplement coller le contenu des fichiers des sections ci-dessus dans un grand main.beancount. Vous pourrez toujours le refactoriser plus tard à mesure que votre grand livre grandit.

Ce cadre fournit une base solide et évolutive pour les finances de votre startup. En gardant vos livres en texte brut sous contrôle de version, vous gagnez une transparence et un contrôle inégalés, préparant votre entreprise à la discipline financière dès le premier jour.