← Volver a self-hosters
Cómo usar Beancount

Sincroniza tu banco en Beancount.

Una guía paso a paso para la contabilidad en texto plano: importa las transacciones de tus bancos de la UE y el Reino Unido directamente en tu libro mayor de Beancount. 3 €/mes, sin certificado eIDAS, sin muro de límite de peticiones y cifrado para que solo tú puedas leerlo.

€3/mes — 1 cuenta incluida · No se requiere tarjeta de crédito

Configuración en 5 minutos

Del banco al libro mayor en cinco pasos.

  1. Instala el importador

    Descarga el importador de beangulp desde PyPI. Incluye el SDK de cliente que necesita, así que es la única dependencia que debes añadir.

    bash

    pip install beancount-openbanking-io
  2. Exporta tus credenciales

    Desde el panel de open-banking.io, exporta credentials.json: combina una API key con la clave de descifrado que solo tú tienes, para que el importador pueda leer tus datos localmente.

    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)

    El segundo fragmento imprime todos los id de cuenta que puedes asignar. Copia los id que quieras sincronizar: los pegarás en la configuración en el siguiente paso.

  3. Asigna las cuentas en un archivo de configuración

    Crea un archivo *openbanking.yaml junto a tu libro mayor. Apúntalo a tus credenciales y asigna cada id de cuenta bancaria a una cuenta de Beancount. currency, counterpart y assert_balance son opcionales por cuenta.

    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

    Cualquier archivo cuyo nombre termine en openbanking.yaml se detecta automáticamente en el paso identify() del importador: mantén un archivo por libro mayor, o varios si divides la contabilidad.

  4. Ejecuta la importación

    Conecta el importador a un script de beangulp de un solo archivo, luego extrae las transacciones y añádelas a tu libro mayor. Ejecútalo a mano, desde un Makefile o mediante una tarea 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

    El comando extract de beangulp imprime las entradas de Beancount en stdout: redirígelas a tu libro mayor o a un archivo intermedio que revises antes de fusionar.

  5. Lee el resultado

    Obtienes transacciones reales de Beancount con importes con signo, un obio-id en cada asiento para la deduplicación y una aserción de saldo opcional al final de cada ejecución.

    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

    Volver a ejecutarlo es seguro: beangulp deduplica según los metadatos obio-id, así que importar la misma ventana dos veces nunca duplica tus asientos. Pasa la salida por smart_importer para categorizar automáticamente el segundo asiento.

Por qué encaja con la contabilidad en texto plano

Diseñado tal y como ya funciona tu libro mayor.

Cifrado: no podemos leerlo

Las transacciones se cifran en tu dispositivo con una clave que solo tú tienes. Almacenamos texto cifrado, así que tu extracto nunca queda en forma legible en nuestros servidores.

Sin certificado eIDAS

Sin certificado PSD2 (eIDAS) que comprar o registrar, y sin solicitud bancaria que presentar antes. Conecta tu banco y empieza a importar.

Sin muro de 4 peticiones al día

Sin límite de cuatro peticiones por cuenta y día que sortear en la planificación. Extrae los datos con la frecuencia que realmente necesite tu contabilidad.

Se lleva bien con tus herramientas

Salida estándar de beangulp: pásala por smart_importer para la categorización automática, o por fava, bean-check y tus propios scripts. Sin dependencia forzada.

¿Vas a sustituir GoCardless o Nordigen?

Su plan personal gratuito dejó de admitir nuevos self-hosters, y el límite de cuatro peticiones por cuenta y día rompe las importaciones rutinarias a Beancount. open-banking.io es la alternativa por 3 €/mes: sin certificado, sin muro diario y cifrado para que solo tú puedas leerlo. (La conectividad bancaria la proporciona nuestro proveedor con licencia, Enable Banking.)

Lleva tu banco a Beancount.

Conecta un banco de la UE o el Reino Unido en minutos y mantén tu libro mayor sincronizado, por 3 € al mes.

Consigue acceso anticipado

No se requiere tarjeta de crédito