← Retour aux self-hosters
Guide Beancount

Synchronisez votre banque dans Beancount.

Un guide pas à pas pour la comptabilité en texte brut : importez vos transactions bancaires de l'UE et du Royaume-Uni directement dans votre grand livre Beancount. 3 €/mois, aucun certificat eIDAS, aucun mur de limitation de débit, et chiffré pour que vous seul puissiez le lire.

€3/mois — 1 compte inclus · Aucune carte bancaire requise

L'installation en 5 minutes

De la banque au grand livre en cinq étapes.

  1. Installez l'importateur

    Récupérez l'importateur beangulp depuis PyPI. Il embarque le SDK client dont il a besoin, c'est donc la seule dépendance à ajouter.

    bash

    pip install beancount-openbanking-io
  2. Exportez vos identifiants

    Depuis le tableau de bord open-banking.io, exportez credentials.json — il associe une clé API à la clé de déchiffrement que vous seul détenez, afin que l'importateur puisse lire vos données localement.

    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)

    Le second extrait affiche tous les identifiants de compte que vous pouvez mapper. Copiez les identifiants que vous souhaitez synchroniser — vous les collerez dans la configuration à l'étape suivante.

  3. Mappez les comptes dans un fichier de configuration

    Créez un fichier *openbanking.yaml à côté de votre grand livre. Pointez-le vers vos identifiants et mappez chaque identifiant de compte bancaire vers un compte Beancount. currency, counterpart et assert_balance sont facultatifs par compte.

    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

    Tout nom de fichier se terminant par openbanking.yaml est détecté automatiquement par l'étape identify() de l'importateur — gardez un fichier par grand livre, ou plusieurs si vous répartissez vos comptes.

  4. Lancez l'import

    Intégrez l'importateur dans un script beangulp d'un seul fichier, puis extrayez les transactions et ajoutez-les à votre grand livre. Lancez-le à la main, depuis un Makefile ou selon une planification 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

    L'extraction de beangulp affiche les entrées Beancount sur stdout — redirigez-les vers votre grand livre, ou vers un fichier intermédiaire que vous relisez avant de fusionner.

  5. Lisez le résultat

    Vous obtenez de véritables transactions Beancount avec des montants signés, un obio-id sur chaque écriture pour la déduplication, et une assertion de solde facultative à la fin de chaque exécution.

    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

    Relancer est sans risque : beangulp déduplique sur les métadonnées obio-id, si bien qu'importer deux fois la même fenêtre ne double jamais vos écritures. Passez la sortie dans smart_importer pour catégoriser automatiquement la contrepartie.

Pourquoi cela convient à la comptabilité en texte brut

Conçu comme votre grand livre fonctionne déjà.

Chiffré — nous ne pouvons pas le lire

Les transactions sont chiffrées sur votre appareil avec une clé que vous seul détenez. Nous stockons du texte chiffré, si bien que votre relevé ne se trouve jamais sous une forme lisible sur nos serveurs.

Aucun certificat eIDAS

Aucun certificat PSD2 (eIDAS) à acheter ou à enregistrer, et aucune demande bancaire à déposer au préalable. Connectez votre banque et commencez à importer.

Aucun mur de 4 requêtes par jour

Aucune limite de quatre requêtes par compte et par jour à contourner. Extrayez aussi souvent que votre comptabilité l'exige réellement.

S'intègre bien à votre outillage

Une sortie beangulp standard — passez-la dans smart_importer pour la catégorisation automatique, ou dans fava, bean-check et vos propres scripts. Aucun verrouillage.

Vous remplacez GoCardless ou Nordigen ?

Leur offre personnelle gratuite a cessé d'accueillir de nouveaux self-hosters, et la limite de quatre requêtes par compte et par jour casse les imports Beancount de routine. open-banking.io est le remplaçant à 3 €/mois — aucun certificat, aucun mur quotidien, et chiffré pour que vous seul puissiez le lire. (La connectivité bancaire est assurée par notre fournisseur agréé, Enable Banking.)

Faites entrer votre banque dans Beancount.

Connectez une banque de l'UE ou du Royaume-Uni en quelques minutes et gardez votre grand livre synchronisé — pour 3 € par mois.

Commencer

Aucune carte bancaire requise