← Tillbaka till self-hosters
Beancount-guide

Synka din bank in i Beancount.

En steg-för-steg-guide för plaintext-bokföring: hämta dina banktransaktioner från EU och Storbritannien direkt in i din Beancount-liggare. 3 €/månad, inget eIDAS-certifikat, ingen rate limit-mur, och krypterat så att bara du kan läsa det.

€3/mån — 1 konto ingår · Inget kreditkort krävs

Uppsättning på 5 minuter

Från bank till liggare i fem steg.

  1. Installera importören

    Hämta beangulp-importören från PyPI. Den levereras med det klient-SDK den behöver, så det är det enda beroende du behöver lägga till.

    bash

    pip install beancount-openbanking-io
  2. Exportera dina credentials

    Exportera credentials.json från open-banking.io-dashboarden — den parar ihop en API-nyckel med den dekrypteringsnyckel som bara du har, så att importören kan läsa dina data lokalt.

    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)

    Det andra kodavsnittet skriver ut alla konto-id:n du kan mappa. Kopiera de id:n du vill synka — dem klistrar du in i konfigurationen i nästa steg.

  3. Mappa konton i en konfigurationsfil

    Skapa en *openbanking.yaml-fil bredvid din liggare. Peka den mot dina credentials och mappa varje bankkonto-id till ett Beancount-konto. currency, counterpart och assert_balance är valfria per konto.

    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

    Alla filnamn som slutar på openbanking.yaml upptäcks automatiskt av importörens identify()-steg — håll en fil per liggare, eller flera om du delar upp din bokföring.

  4. Kör importen

    Koppla in importören i ett beangulp-skript på en fil, extrahera sedan transaktionerna och lägg till dem i din liggare. Kör det för hand, från en Makefile eller på ett 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

    beangulps extract skriver ut Beancount-poster till stdout — omdirigera dem in i din liggare, eller till en mellanfil som du granskar innan du slår ihop.

  5. Läs resultatet

    Du får riktiga Beancount-transaktioner med förtecken på beloppen, ett obio-id på varje postering för deduplicering och ett valfritt saldopåstående i slutet av varje körning.

    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

    Det är säkert att köra igen: beangulp deduplicerar på obio-id-metadatan, så att importera samma fönster två gånger dubblerar aldrig dina posteringar. Skicka utdatan genom smart_importer för att automatiskt kategorisera den andra posteringen.

Varför det passar plaintext-bokföring

Byggt så som din liggare redan fungerar.

Krypterat — vi kan inte läsa det

Transaktioner krypteras på din enhet med en nyckel bara du har. Vi lagrar chiffertext, så ditt kontoutdrag ligger aldrig i läsbar form på våra servrar.

Inget eIDAS-certifikat

Inget PSD2- (eIDAS-)certifikat att köpa eller registrera, och ingen bankansökan att lämna in först. Anslut din bank och börja importera.

Ingen mur på 4 förfrågningar per dag

Ingen gräns på fyra förfrågningar per konto och dag att planera runt. Extrahera så ofta din bokföring faktiskt behöver.

Fungerar bra ihop med dina verktyg

Vanlig beangulp-utdata — skicka den genom smart_importer för automatisk kategorisering, eller fava, bean-check och dina egna skript. Ingen inlåsning.

Ersätter du GoCardless eller Nordigen?

Deras gratis privatnivå slutade ta emot nya self-hosters, och gränsen på fyra förfrågningar per konto och dag förstör rutinimporter till Beancount. open-banking.io är ersättningen för 3 €/månad — inget certifikat, ingen daglig mur, och krypterat så att bara du kan läsa det. (Bankanslutningen drivs av vår licensierade leverantör, Enable Banking.)

Få in din bank i Beancount.

Anslut en bank i EU eller Storbritannien på några minuter och håll din liggare synkad — för 3 € i månaden.

Kom igång

Inget kreditkort krävs