← Terug naar self-hosters
Beancount-handleiding

Synchroniseer je bank in Beancount.

Een stapsgewijze handleiding voor plaintext-boekhouding: haal je banktransacties uit de EU en het VK rechtstreeks in je Beancount-grootboek. €3/maand, geen eIDAS-certificaat, geen rate-limit-muur, en versleuteld zodat alleen jij het kunt lezen.

€3/maand — 1 rekening inbegrepen · Geen creditcard nodig

De opzet in 5 minuten

Van bank naar grootboek in vijf stappen.

  1. Installeer de importer

    Haal de beangulp-importer van PyPI. Deze levert de client-SDK die hij nodig heeft mee, dus dit is de enige afhankelijkheid om toe te voegen.

    bash

    pip install beancount-openbanking-io
  2. Exporteer je credentials

    Exporteer vanuit het open-banking.io-dashboard credentials.json — het koppelt een API-sleutel aan de ontsleutelingssleutel die alleen jij hebt, zodat de importer je gegevens lokaal kan lezen.

    bash

    # Dashboard → Settings → API keys → "Export credentials"
    # downloads credentials.json. Keep it next to your ledger.
    mv ~/Downloads/credentials.json ./credentials.json

    list_accounts.py

    from beancount_openbanking_io import Client
    
    client = Client("credentials.json")
    for account in client.accounts():
        print(account.id, account.currency, account.name)

    Het tweede fragment drukt elke rekening-id af die je kunt mappen. Kopieer de id's die je wilt synchroniseren — die plak je in de volgende stap in de configuratie.

  3. Map rekeningen in een configuratiebestand

    Maak een *openbanking.yaml-bestand naast je grootboek aan. Wijs het naar je credentials en map elke bankrekening-id aan een Beancount-rekening. currency, counterpart en assert_balance zijn optioneel per rekening.

    myfinances.openbanking.yaml

    # Any file ending in *openbanking.yaml is picked up by the importer.
    credentials: credentials.json
    
    accounts:
      - id: "a1b2c3d4-0000-1111-2222-333344445555"
        account: Assets:Bank:Checking
        currency: EUR                       # optional — inferred from the bank if omitted
        counterpart: Expenses:Uncategorized # optional — default second posting
        assert_balance: true                # optional — append a balance assertion
    
      - id: "f6e5d4c3-9999-8888-7777-666655554444"
        account: Assets:Bank:Savings

    Elke bestandsnaam die eindigt op openbanking.yaml wordt automatisch herkend door de identify()-stap van de importer — houd één bestand per grootboek aan, of meerdere als je je boeken splitst.

  4. Voer de import uit

    Verbind de importer met een beangulp-script van één bestand, haal dan transacties op en voeg ze toe aan je grootboek. Voer het met de hand uit, vanuit een Makefile, of op een cron-schema.

    import.py

    #!/usr/bin/env python3
    import beangulp
    from beancount_openbanking_io import OpenBankingImporter
    
    importers = [
        OpenBankingImporter(),
    ]
    
    if __name__ == "__main__":
        beangulp.Ingest(importers).main()

    bash

    python import.py extract myfinances.openbanking.yaml >> ledger.beancount

    beangulp's extract drukt Beancount-entries af naar stdout — leid ze naar je grootboek, of naar een staging-bestand dat je nakijkt voordat je samenvoegt.

  5. Lees het resultaat

    Je krijgt echte Beancount-transacties met bedragen met teken, een obio-id op elke boeking voor ontdubbeling, en een optionele saldocontrole aan het eind van elke uitvoering.

    ledger.beancount

    2026-06-28 * "Netto" "Card purchase"
      obio-id: "txn_9f2c7a1e5b"
      Assets:Bank:Checking  -42.18 EUR
    
    2026-06-29 * "ACME A/S" "Salary June"
      obio-id: "txn_1b8e4d9077"
      Assets:Bank:Checking  +2450.00 EUR
    
    2026-06-30 balance Assets:Bank:Checking  8137.55 EUR

    Opnieuw uitvoeren is veilig: beangulp ontdubbelt op de obio-id-metadata, dus dezelfde periode twee keer importeren verdubbelt je boekingen nooit. Stuur de output door smart_importer om de tweede boeking automatisch te categoriseren.

Waarom het past bij plaintext-boekhouding

Gebouwd zoals je grootboek al werkt.

Versleuteld — wij kunnen het niet lezen

Transacties worden op je apparaat versleuteld met een sleutel die alleen jij hebt. Wij slaan cijfertekst op, dus je rekeningoverzicht staat nooit in leesbare vorm op onze servers.

Geen eIDAS-certificaat

Geen PSD2- (eIDAS-)certificaat om te kopen of te registreren, en geen bankaanvraag om eerst in te dienen. Koppel je bank en begin met importeren.

Geen muur van 4 verzoeken per dag

Geen limiet van vier verzoeken per rekening per dag om omheen te plannen. Haal gegevens op zo vaak als je boeken echt nodig hebben.

Werkt goed samen met je tooling

Gewone beangulp-output — stuur het door smart_importer voor automatische categorisering, of fava, bean-check en je eigen scripts. Geen lock-in.

Vervang je GoCardless of Nordigen?

Hun gratis niveau voor particulieren nam geen nieuwe self-hosters meer aan, en de limiet van vier verzoeken per rekening per dag breekt routinematige Beancount-imports. open-banking.io is de vervanging voor €3/maand — geen certificaat, geen dagelijkse muur, en versleuteld zodat alleen jij het kunt lezen. (Bankconnectiviteit wordt geleverd door onze gelicentieerde leverancier, Enable Banking.)

Krijg je bank in Beancount.

Koppel binnen enkele minuten een bank in de EU of het VK en houd je grootboek gesynchroniseerd — voor €3 per maand.

Aan de slag

Geen creditcard nodig