← Torna ai self-hoster
Guida a Beancount

Sincronizza la tua banca in Beancount.

Una guida passo passo per la contabilità in plaintext: importa le transazioni delle tue banche di UE e Regno Unito direttamente nel tuo registro Beancount. €3/mese, nessun certificato eIDAS, nessun muro di rate limit, e cifrato così che solo tu possa leggerlo.

€3/mese — 1 conto incluso · Nessuna carta di credito richiesta

La configurazione in 5 minuti

Dalla banca al registro in cinque passi.

  1. Installa l'importer

    Scarica l'importer beangulp da PyPI. Include l'SDK client di cui ha bisogno, quindi questa è l'unica dipendenza da aggiungere.

    bash

    pip install beancount-openbanking-io
  2. Esporta le tue credenziali

    Dalla dashboard di open-banking.io, esporta credentials.json — abbina un'API key alla chiave di decifratura che solo tu possiedi, così l'importer può leggere i tuoi dati in locale.

    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)

    Il secondo snippet stampa ogni id di conto che puoi mappare. Copia gli id che vuoi sincronizzare — li incollerai nella configurazione nel passo successivo.

  3. Mappa i conti in un file di configurazione

    Crea un file *openbanking.yaml accanto al tuo registro. Puntalo alle tue credenziali e mappa ogni id di conto bancario a un conto Beancount. currency, counterpart e assert_balance sono opzionali per ciascun conto.

    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

    Qualsiasi nome di file che termina con openbanking.yaml viene rilevato automaticamente dal passo identify() dell'importer — mantieni un file per registro, o più file se dividi i libri.

  4. Esegui l'import

    Collega l'importer in uno script beangulp a file singolo, quindi estrai le transazioni e aggiungile al tuo registro. Eseguilo a mano, da un Makefile o secondo una pianificazione 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

    extract di beangulp stampa le voci Beancount su stdout — reindirizzale nel tuo registro, o in un file di staging da rivedere prima di unirle.

  5. Leggi il risultato

    Ottieni vere transazioni Beancount con importi con segno, un obio-id su ogni posting per la deduplicazione e un'asserzione di saldo opzionale alla fine di ogni esecuzione.

    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

    Rieseguire è sicuro: beangulp deduplica sui metadati obio-id, quindi importare due volte la stessa finestra non raddoppia mai i tuoi posting. Passa l'output attraverso smart_importer per categorizzare automaticamente la seconda gamba.

Perché si adatta alla contabilità in plaintext

Costruito nel modo in cui il tuo registro già funziona.

Cifrato — non possiamo leggerlo

Le transazioni sono cifrate sul tuo dispositivo con una chiave che solo tu possiedi. Archiviamo testo cifrato, quindi il tuo estratto conto non è mai in forma leggibile sui nostri server.

Nessun certificato eIDAS

Nessun certificato PSD2 (eIDAS) da acquistare o registrare, e nessuna domanda bancaria da presentare prima. Collega la tua banca e inizia a importare.

Nessun muro di 4 richieste al giorno

Nessun limite di quattro richieste per conto al giorno da aggirare pianificando. Estrai con la frequenza di cui i tuoi libri hanno davvero bisogno.

Si integra bene con i tuoi strumenti

Output beangulp puro — passalo attraverso smart_importer per la categorizzazione automatica, oppure fava, bean-check e i tuoi script. Nessun lock-in.

Stai sostituendo GoCardless o Nordigen?

Il loro piano personale gratuito ha smesso di accogliere nuovi self-hoster, e il limite di quattro richieste per conto al giorno rompe le importazioni di routine in Beancount. open-banking.io è la sostituzione a €3/mese — nessun certificato, nessun muro giornaliero, e cifrato così che solo tu possa leggerlo. (La connettività bancaria è fornita dal nostro fornitore autorizzato, Enable Banking.)

Porta la tua banca in Beancount.

Collega una banca di UE o Regno Unito in pochi minuti e mantieni il tuo registro sincronizzato — per €3 al mese.

Inizia ora

Nessuna carta di credito richiesta