← Powrót do self-hosterów
Poradnik Beancount

Synchronizuj swój bank z Beancount.

Poradnik krok po kroku do księgowości w plaintext: pobierz transakcje bankowe z UE i Wielkiej Brytanii wprost do księgi Beancount. €3/miesiąc, bez certyfikatu eIDAS, bez bariery limitu zapytań i szyfrowane tak, że tylko Ty możesz to odczytać.

€3/mies. — 1 konto w cenie · Bez karty kredytowej

Konfiguracja w 5 minut

Od banku do księgi w pięciu krokach.

  1. Zainstaluj importer

    Pobierz importer beangulp z PyPI. Zawiera potrzebne mu klienckie SDK, więc to jedyna zależność do dodania.

    bash

    pip install beancount-openbanking-io
  2. Wyeksportuj swoje dane uwierzytelniające

    W panelu open-banking.io wyeksportuj credentials.json — łączy on klucz API z kluczem deszyfrującym, który masz tylko Ty, dzięki czemu importer może odczytać Twoje dane lokalnie.

    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)

    Drugi fragment wypisuje wszystkie identyfikatory kont, które możesz zmapować. Skopiuj identyfikatory, które chcesz synchronizować — wkleisz je do konfiguracji w kolejnym kroku.

  3. Zmapuj konta w pliku konfiguracyjnym

    Utwórz plik *openbanking.yaml obok swojej księgi. Wskaż w nim swoje dane uwierzytelniające i zmapuj każdy identyfikator konta bankowego na konto Beancount. currency, counterpart i assert_balance są opcjonalne dla każdego konta.

    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

    Każda nazwa pliku kończąca się na openbanking.yaml jest automatycznie wykrywana przez krok identify() importera — trzymaj jeden plik na księgę lub kilka, jeśli dzielisz księgi.

  4. Uruchom import

    Podłącz importer do jednoplikowego skryptu beangulp, następnie wyodrębnij transakcje i dopisz je do księgi. Uruchom go ręcznie, z pliku Makefile lub według harmonogramu cron.

    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 extract wypisuje wpisy Beancount na stdout — przekieruj je do swojej księgi albo do pliku roboczego, który przejrzysz przed scaleniem.

  5. Odczytaj wynik

    Otrzymasz prawdziwe transakcje Beancount z kwotami ze znakiem, obio-id przy każdym księgowaniu do deduplikacji oraz opcjonalną asercję salda na końcu każdego uruchomienia.

    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

    Ponowne uruchomienie jest bezpieczne: beangulp deduplikuje na podstawie metadanych obio-id, więc zaimportowanie tego samego okna dwa razy nigdy nie zdubluje księgowań. Przepuść wynik przez smart_importer, aby automatycznie kategoryzować drugą stronę.

Dlaczego pasuje do księgowości w plaintext

Zbudowane tak, jak już działa Twoja księga.

Szyfrowane — nie możemy tego odczytać

Transakcje są szyfrowane na Twoim urządzeniu kluczem, który masz tylko Ty. Przechowujemy szyfrogram, więc Twój wyciąg nigdy nie leży w czytelnej formie na naszych serwerach.

Bez certyfikatu eIDAS

Żadnego certyfikatu PSD2 (eIDAS) do kupienia czy rejestracji ani wniosku bankowego do wcześniejszego złożenia. Połącz swój bank i zacznij importować.

Bez bariery 4 zapytań dziennie

Żadnego limitu czterech zapytań na konto dziennie do planowania wokół niego. Wyodrębniaj tak często, jak naprawdę potrzebuje tego Twoja księga.

Dobrze współpracuje z Twoimi narzędziami

Zwykły wynik beangulp — przepuść go przez smart_importer do automatycznej kategoryzacji albo przez fava, bean-check i własne skrypty. Bez uzależnienia od dostawcy.

Zastępujesz GoCardless lub Nordigen?

Ich darmowy plan dla osób prywatnych przestał przyjmować nowych self-hosterów, a limit czterech zapytań na konto dziennie psuje rutynowe importy do Beancount. open-banking.io to zamiennik za €3/miesiąc — bez certyfikatu, bez dziennej bariery i szyfrowany tak, że tylko Ty możesz to odczytać. (Łączność bankowa jest zapewniana przez naszego licencjonowanego dostawcę, Enable Banking.)

Wprowadź swój bank do Beancount.

Połącz bank z UE lub Wielkiej Brytanii w kilka minut i utrzymuj księgę w synchronizacji — za €3 miesięcznie.

Zacznij

Bez karty kredytowej