Actueel per 2026-09-15.
De kracht van Beancount ligt niet alleen in het plain-text-formaat, maar ook in de uitbreidbaarheid via plugins. Native plugins zijn ingebouwde modules die de functionaliteit van Beancount verbeteren, saaie taken automatiseren en boekhoudkundige best practices afdwingen. In deze uitgebreide gids verkennen we alle native plugins die beschikbaar zijn in Beancount en hoe je ze effectief kunt gebruiken.
Voor de directive-syntax waarop deze plugins werken, zie de Beancount-syntaxreferentie. Voor echte community-workflows die plugins combineren met importeurs en Fava, zie de community-showcase. Ledger-opties die met plugins interageren vind je in Opties-configuratie.
Wat zijn Beancount-plugins?
Beancount-plugins zijn Python-modules die je ledger-items verwerken om automatisering, validatie of transformatiemogelijkheden toe te voegen. Ze worden uitgevoerd tijdens de laadfase van je ledgerbestand en kunnen:
- Automatiseren van repetitieve taken (bijv. het maken van rekeningdeclaraties)
- Valideren van gegevensintegriteit (bijv. controleren op dubbele transacties)
- Transformeren van items (bijv. het genereren van prijsitems uit transacties)
- Afdwingen van boekhoudregels (bijv. één commodity per rekening)
Hoe gebruik je plugins
Om een plugin in je Beancount-bestand in te schakelen, voeg je een plugin-directive toe bovenaan je ledger:
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"Sommige plugins accepteren configuratieopties:
; @m49-fragment dateless
plugin "beancount.plugins.check_commodity" "{'Assets:Trading': '.*'}"Native plugincategorieën
De native plugins van Beancount vallen uiteen in vier hoofdcategorieën:
1. Automatiseringsplugins
2. Validatieplugins
3. Transformatieplugins
4. Meta-plugins
1. Automatiseringsplugins
Deze plugins automatiseren repetitieve boekhoudtaken, besparen tijd en verminderen handmatige fouten.
auto_accounts - Automatische rekeningdeclaraties
Wat het doet: Voegt automatisch Open-directives in voor rekeningen die in transacties voorkomen maar niet expliciet zijn gedeclareerd.
Waarom gebruiken: Elimineert de noodzaak om elke rekening handmatig te declareren voordat je deze gebruikt. Perfect voor een snelle start of voor gebruikers die de voorkeur geven aan minimale boilerplate.
Voorbeeld:
plugin "beancount.plugins.auto_accounts"
2026-01-01 * "Koffietent"
Expenses:Food:Coffee 4.50 USD
Assets:Cash -4.50 USDZonder de plugin zou je handmatig moeten toevoegen:
2025-12-01 open Expenses:Food:Coffee
2025-12-01 open Assets:CashWanneer gebruiken: Ideaal voor beginners of voor degenen die een minder uitgebreide ledger willen. Expliciete rekeningdeclaraties kunnen echter helpen om typefouten op te sporen.
close_tree - Automatisch afsluiten van rekeninghiërarchie
Wat het doet: Wanneer je een bovenliggende rekening afsluit, sluit deze plugin automatisch al zijn afstammelingen af.
Waarom gebruiken: Handhaaft consistentie in je rekeninghiërarchie. Als je Assets:Investments sluit, worden alle subrekeningen zoals Assets:Investments:Stocks en Assets:Investments:Bonds automatisch gesloten.
Voorbeeld:
plugin "beancount.plugins.close_tree"
2025-06-30 close Assets:Investments
; Deze worden automatisch gesloten:
; Assets:Investments:Stocks
; Assets:Investments:Bonds
; Assets:Investments:RealEstateWanneer gebruiken: Bij het herstructureren van je rekeninghiërarchie of het sluiten van hele rekeningcategorieën.
implicit_prices - Automatisch genereren van prijsitems
Wat het doet: Synthetiseert Price-directives uit transactieboekingen met kosten (@) of prijzen (@@).
Waarom gebruiken: Vult automatisch je prijsdatabase met transacties, waardoor een nauwkeurige marktwaarde rapportage mogelijk is zonder handmatige prijsitems.
Voorbeeld:
plugin "beancount.plugins.implicit_prices"
2026-01-02 * "AAPL-aandelen kopen"
Assets:Investments:Stocks 10 AAPL @ 150.00 USD
Assets:Cash -1500.00 USDDit genereert automatisch:
2026-01-02 price AAPL 150.00 USDWanneer gebruiken: Essentieel voor het bijhouden van beleggingen en voor multi-valuta-administratie waarbij je een automatische prijsgeschiedenis wilt.
2. Validatieplugins
Deze plugins handhaven gegevensintegriteit en boekhoudkundige best practices, en vangen fouten op voordat ze problemen worden.
noduplicates - Detectie van dubbele transacties
Wat het doet: Controleert dat geen twee transacties identiek zijn door hashes van transactiegegevens te berekenen en te vergelijken.
Waarom gebruiken: Voorkomt per ongeluk dubbele items, vooral bij het importeren van transacties uit meerdere bronnen.
Voorbeeld:
; @m49-fragment expected-failure
plugin "beancount.plugins.noduplicates"
2026-01-02 * "Huur betaling"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USD
; Dit zou een fout veroorzaken:
2026-01-02 * "Huur betaling"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USDWanneer gebruiken: Altijd aanbevolen, vooral als je importeert uit bankafschriften of meerdere gegevensbronnen gebruikt.
check_commodity - Validatie van commodity-declaraties
Wat het doet: Zorgt ervoor dat alle commodities die in je ledger worden gebruikt, overeenkomstige Commodity-directives hebben.
Waarom gebruiken: Handhaaft expliciete commodity-declaraties, waardoor je een schone lijst van activa en valuta's behoudt.
Voorbeeld:
; @m49-fragment expected-failure
plugin "beancount.plugins.check_commodity"
2015-01-01 commodity USD
2020-01-01 commodity AAPL
; Dit zou een fout veroorzaken zonder commodity-declaratie:
2026-01-02 * "Bitcoin kopen"
Assets:Crypto 0.5 BTC @ 45000 USD
Assets:Cash -22500.00 USDWanneer gebruiken: Aanbevolen voor strikt commodity-beheer en het voorkomen van typefouten in tickersymbolen.
check_average_cost - Validatie van kostprijsbasis
Wat het doet: Controleert of de kostprijsbasis correct wordt behouden in transacties, vooral bij gebruik van gemiddelde-kostprijsboekingen.
Waarom gebruiken: Zorgt ervoor dat je kostberekening accuraat blijft voor belastingaangiften en berekening van vermogenswinsten.
Wanneer gebruiken: Cruciaal voor beleggingsportefeuilles en elk scenario waarin nauwkeurige kostentracking belangrijk is.
check_closing - Validatie van rekeningafsluiting
Wat het doet: Breidt de closing-metadata uit naar saldocontroles, zodat posities na afsluitende transacties nul zijn.
Waarom gebruiken: Bevestigt dat wanneer je een hele positie verkoopt, het saldo echt nul is (geen resterende fractionele aandelen).
Voorbeeld:
plugin "beancount.plugins.check_closing"
2026-01-02 * "Volledige AAPL-positie sluiten" #closing
Assets:Investments:Stocks -100 AAPL {150.00 USD}
Assets:Cash 15500.00 USD
Income:Investments:Gains -500.00 USDDe #closing-tag vertelt de plugin om te controleren dat je AAPL-positie na deze transactie nul is.
Wanneer gebruiken: Bij het verkopen van volledige posities om te zorgen dat er niets achterblijft.
coherent_cost - Controle op valuta-/kostenconsistentie
Wat het doet: Valideert dat valuta's niet inconsistent worden gebruikt — zowel met als zonder kostenannotaties.
Waarom gebruiken: Voorkomt het mengen van kale valuta's (zoals 100 USD) met valuta's met kosten (zoals 100 USD {1.2 CAD}), wat boekhoudkundige fouten kan veroorzaken.
Wanneer gebruiken: Aanbevolen voor multi-valuta-ledgers om consistentie te behouden.
leafonly - Afdwingen van bladrekeningen
Wat het doet: Zorgt ervoor dat alleen bladrekeningen (rekeningen zonder kinderen) boekingen ontvangen.
Waarom gebruiken: Handhaaft een schone rekeninghiërarchie waarbij samenvattingsrekeningen zoals Expenses:Food geen directe boekingen hebben, alleen hun kinderen zoals Expenses:Food:Groceries en Expenses:Food:Restaurants.
Voorbeeld:
; @m49-fragment expected-failure
plugin "beancount.plugins.leafonly"
; Dit zou een fout veroorzaken:
2026-01-02 * "Boodschappen doen"
Expenses:Food 50.00 USD ; Fout: Moet naar een bladrekening
Assets:Cash -50.00 USD
; Correcte manier:
2026-01-02 * "Boodschappen doen"
Expenses:Food:Groceries 50.00 USD ; Correct: Boeking naar bladrekening
Assets:Cash -50.00 USDWanneer gebruiken: Wanneer je een strikt hiërarchische administratie met duidelijke categorisering wilt behouden.
nounused - Detectie van ongebruikte rekeningen
Wat het doet: Identificeert rekeningen die geopend maar nooit daadwerkelijk in transacties zijn gebruikt.
Waarom gebruiken: Helpt bij het opschonen van je rekeningdeclaraties en het identificeren van mogelijke typefouten of verlaten rekeningen.
Wanneer gebruiken: Periodiek, om je rekeningstructuur te controleren en op te ruimen.
onecommodity - Eén commodity per rekening
Wat het doet: Handhaaft dat elke rekening slechts één type commodity bevat.
Waarom gebruiken: Voorkomt het mengen van verschillende activa op dezelfde rekening, wat over het algemeen een boekhoudkundige best practice is.
Voorbeeld:
; @m49-fragment expected-failure
plugin "beancount.plugins.onecommodity"
2026-01-02 * "Aandelen kopen"
Assets:Investments 10 AAPL @ 150 USD
Assets:Cash -1500.00 USD
; Dit zou een fout veroorzaken:
2026-01-03 * "Meer aandelen kopen"
Assets:Investments 5 GOOGL @ 140 USD ; Fout: Andere commodity
Assets:Cash -700.00 USDWanneer gebruiken: Wanneer je de voorkeur geeft aan strikte rekeningenscheiding (één rekening per aandeel/actief).
sellgains - Validatie van vermogenswinsten
Wat het doet: Kruiscontroleert gedeclareerde vermogenswinsten met de berekende winsten uit lotverkopen, zodat je winst/verliesberekeningen nauwkeurig zijn.
Waarom gebruiken: Vangt fouten op bij handmatige berekeningen van vermogenswinsten, cruciaal voor nauwkeurige belastingaangiften.
Voorbeeld:
plugin "beancount.plugins.sellgains"
2026-01-02 * "AAPL-aandelen verkopen"
Assets:Investments:Stocks -10 AAPL {140.00 USD}
Assets:Cash 1500.00 USD
Income:Investments:Gains -100.00 USD ; Plugin valideert dat dit correct isDe plugin controleert: Verkoopopbrengst (1500) - Kostprijs (1400) = Winst (100)
Wanneer gebruiken: Essentieel voor iedereen die handelt in aandelen, crypto of andere activa waarbij vermogenswinsten belangrijk zijn.
unique_prices - Controle op unieke prijzen
Wat het doet: Zorgt ervoor dat er slechts één prijsitem per commodity en per datum is.
Waarom gebruiken: Voorkomt tegenstrijdige prijsgegevens die tot onjuiste waarderingen kunnen leiden.
Wanneer gebruiken: Aanbevolen bij het handmatig invoeren van prijzen of het importeren uit meerdere prijsbronnen.
check_drained - Validatie van lege rekeningen
Wat het doet: Markeert rekeningen die nog een saldo hebben (inclusief niet-geprijsde valuta's of resterende lots) wanneer je verwachtte dat ze leeg zouden zijn na overschrijvingen of afsluitingen.
Waarom gebruiken: Vangt resterende saldi op die balance-assertions en #closing-tags kunnen missen — vooral nuttig na multi-commodity-transacties.
Status (gecontroleerd op 2026-09-15): Aanwezig in de Beancount 3.x-boom op beancount/plugins/check_drained.py op de huidige PyPI-lijn (3.2.3).
Wanneer gebruiken: Na grote portefeuillereorganisaties of bij het sluiten van brokerrekeningen.
3. Transformatieplugins
Deze plugins wijzigen of verbeteren je ledgergegevens op nuttige manieren.
currency_accounts - Valutahandelrekeningen
Wat het doet: Implementeert valutahandelrekeningen voor het expliciet volgen van forexconversies.
Waarom gebruiken: Biedt gedetailleerde tracking van valutaconversietransacties, nuttig voor boekhoudnormen die dit vereisen.
Wanneer gebruiken: Wanneer je forexwinsten/-verliezen apart moet volgen of moet voldoen aan specifieke boekhoudvereisten.
commodity_attr - Validatie van commodity-attributen
Wat het doet: Valideert dat commodity-directives vereiste attributen hebben (zoals export, name, enz.).
Waarom gebruiken: Zorgt ervoor dat je commodity-metadata compleet en consistent is.
Wanneer gebruiken: Wanneer je gedetailleerde commodity-metadata onderhoudt voor rapportage- of exportdoeleinden.
4. Meta-plugins
Deze plugins zijn verzamelingen van andere plugins voor het gemak.
auto - Alle automatische plugins
Wat het doet: Schakelt een verzameling "losse" of automatische plugins in met één directive.
Wanneer gebruiken: Snelle installatie voor gebruikers die maximale automatisering willen met minimale configuratie.
pedantic - Alle validatieplugins
Wat het doet: Schakelt alle strikte validatieplugins tegelijk in.
Waarom gebruiken: Handhaaft maximale gegevensintegriteit en boekhoudkundige nauwkeurigheid. Geweldig voor productieledgers of wanneer nauwkeurigheid van het grootste belang is.
Voorbeeld:
plugin "beancount.plugins.pedantic"
; Dit is gelijk aan het inschakelen van:
; - check_commodity
; - check_average_cost
; - coherent_cost
; - leafonly
; - noduplicates
; - nounused
; - onecommodity
; - sellgains
; - unique_pricesWanneer gebruiken: Voor productieledgers waar je maximale validatie wilt en bereid bent striktere boekhoudpraktijken te handhaven.
Aanbevolen pluginconfiguraties
Voor beginners
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.noduplicates"
plugin "beancount.plugins.implicit_prices"Deze minimale set biedt automatisering en voorkomt veelvoorkomende fouten.
Voor beleggers
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_average_cost"
plugin "beancount.plugins.unique_prices"Richt zich op beleggingstracking en nauwkeurigheid van vermogenswinsten.
Voor strikte boekhouding
plugin "beancount.plugins.pedantic"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_closing"Maximale validatie voor productieomgevingen.
Standaardconfiguratie bij Beancount.io
Bij Beancount.io nemen we de auto_accounts-plugin standaard op in alle nieuwe ledgerbestanden:
plugin "beancount.plugins.auto_accounts"Dit biedt een goede balans tussen gebruiksgemak en functionaliteit voor een snelle start.
Pluginstatus gecontroleerd op 2026-09-15
Tegen de live beancount/plugins-boom op Beancount 3.2.3 (PyPI, 2026-09-15):
| Pluginmodule | Nog aanwezig | Opmerkingen |
|---|---|---|
auto_accounts, close_tree, implicit_prices | Ja | Automatiseringsset ongewijzigd |
noduplicates, check_commodity, check_average_cost, check_closing, coherent_cost, leafonly, nounused, onecommodity, sellgains, unique_prices | Ja | Validatieset ongewijzigd |
currency_accounts, commodity_attr | Ja | Transformatieset ongewijzigd |
auto, pedantic | Ja | Meta-plugins ongewijzigd |
check_drained | Ja | Hierboven gedocumenteerd; was makkelijk te missen in oudere handleidingen |
Niets in die native set is verwijderd tussen het oorspronkelijke concept van deze handleiding en de bovengenoemde datum. Gemeenschapsplugins (niet-native) horen nog steeds op de Awesome Beancount plugins-lijst en in de community-showcase — behandel externe repositories als onafhankelijk geversioneerd en controleer de laatste release van elke repo voordat je deze inschakelt op een productieledger.
Best practices
-
Begin minimaal, voeg toe indien nodig: Start met
auto_accountsennoduplicatesen voeg vervolgens validatieplugins toe naarmate je ledger volwassener wordt. -
Test plugins afzonderlijk: Schakel bij het toevoegen van meerdere plugins ze één voor één in om hun effecten te begrijpen.
-
Lees foutmeldingen zorgvuldig: Pluginfouten wijzen vaak op echte boekhoudkundige problemen die moeten worden opgelost.
-
Gebruik
pedanticvoor productie: Zodra je workflow is vastgesteld, overweeg dan strikte validatie in te schakelen. -
Combineer met aangepaste plugins: Native plugins werken samen met aangepaste plugins zoals de forecast-plugin voor maximale functionaliteit.
Verder dan native plugins
Hoewel native plugins kernfunctionaliteit bieden, omvat het Beancount-ecosysteem veel door de gemeenschap ontwikkelde plugins voor gespecialiseerde behoeften:
- fava.plugins.forecast - Voor het voorspellen van terugkerende transacties
- fava.plugins.link_documents - Voor het koppelen van transacties aan bonbestanden
- Aangepaste importeurs voor bankspecifieke CSV-formaten
- Belasting specifieke rekenmachines en rapporten
Verken het Beancount-ecosysteem voor meer opties, en de community-showcase voor hoe mensen native plugins combineren met importeurs en Fava.
Conclusie
De native plugins van Beancount transformeren plain-text boekhouding van een handmatig proces naar een geautomatiseerd, gevalideerd en robuust financieel beheersysteem. Door deze ingebouwde tools te begrijpen en te benutten, kun je:
- ✅ Vervelende boekhoudtaken automatiseren
- ✅ Fouten opvangen voordat ze problemen worden
- ✅ Strikte gegevensintegriteit handhaven
- ✅ Nauwkeurige financiële rapporten genereren
- ✅ Je richten op financiële inzichten in plaats van gegevensinvoer
Begin vandaag nog met het experimenteren met deze plugins in je ledger. Begin met auto_accounts en implicit_prices en voeg geleidelijk validatieplugins toe naarmate je boekhoudpraktijken volwassener worden.
Klaar om deze plugins uit te proberen? Ga naar Beancount.io en gebruik ze vandaag nog in je ledgerbestand!
Bronnen
- Beancount Plugins API-referentie
- Beancount Scripting & Plugins-handleiding
- Beancount Plugins en Opties door Bryan Alves
- Beancount GitHub-repository
Heb je vragen over Beancount-plugins? Sluit je aan bij de discussie op ons communityforum of bekijk onze documentatie.
Verken een live cryptocurrency-voorbeeldledger:





