Esto proporciona una referencia concisa pero completa para la sintaxis del lenguaje Beancount, combinando estructura práctica, reglas y ejemplos. Para más detalles, consulta la Hoja de Referencia.
Resumen
Beancount es un sistema de contabilidad por partida doble en texto plano. Su lenguaje se estructura alrededor de tres bloques principales:
- Mercancías (monedas, acciones, puntos, etc.)
- Cuentas (libros contables jerárquicos y categorizados)
- Directivas (entradas con fecha que registran eventos o configuración)
Mercancías
Las mercancías siempre se escriben en mayúsculas, por ejemplo, USD, EUR, AAPL, BTC, MILES, HORAS.
Cuentas
Las cuentas son nombres jerárquicos separados por dos puntos y capitalizados. Deben comenzar con uno de los cinco tipos de cuenta raíz:
| Nombre | Tipo | Contenido Típico | Ejemplo |
|---|---|---|---|
Activos | + | Efectivo, Banco, Inversiones | Activos:CuentaCorriente |
Pasivos | - | Tarjetas de Crédito, Préstamos | Pasivos:TarjetaCredito |
Ingresos | - | Salario, Intereses | Ingresos:EmpleadorA |
Gastos | + | Compras, Facturas | Gastos:Alimentos:Restaurantes |
Patrimonio | - | Saldos Iniciales/Finales | Patrimonio:Saldos-Iniciales |
- Los componentes deben estar capitalizados, separados por dos puntos (
:), sin espacios. - Se permiten números y guiones en los componentes.
- Los nombres de las cuentas raíz se pueden personalizar mediante opciones (ver más abajo).
Directivas
Las directivas son las declaraciones centrales en un archivo Beancount. La mayoría comienzan con una fecha, seguida de un tipo de directiva y argumentos. Se procesan en orden cronológico (por fecha), no en el orden del archivo.
Formato general:
YYYY-MM-DD <directive> <arguments...>Directivas Comunes y Ejemplos
Apertura y Cierre de Cuentas
2023-01-01 open Assets:Checking USD,EUR ; Optionally specify allowed currencies
2023-12-31 close Assets:CheckingDeclaración de Mercancías
2020-07-22 commodity AAPL
name: "Apple Inc."Declaraciones de Precio
2022-04-30 price AAPL 150.00 USDNotas y Documentos
2022-03-20 note Assets:Checking "Asked about refund"
2022-03-20 document Assets:Checking "statements/2022-03.pdf"Transacciones
2024-01-05 * "Coffee Shop" "Morning coffee"
Expenses:Food 4.50 USD
Assets:Cash -4.50 USD
2024-01-06 ! "Phone Bill" "Monthly payment" #utilities ^phone
id: "INV12345" ; Metadata
Expenses:Utilities 60.00 USD
Assets:CheckingCaracterísticas de las Anotaciones
; With cost basis
Assets:Stocks 1 AAPL {150.00 USD}
; With price annotation
Assets:Cash -100 USD @ 1.25 CAD
; With total price
Assets:Cash -100 USD @@ 125.00 CAD
; Implicit balance
Assets:Cash -100 USD
Assets:BankVerificaciones de Saldo y Relleno (Padding)
El pad debe tener fecha anterior al balance que alimenta, porque la verificación se realiza al inicio de su día:
2024-06-01 pad Assets:Checking Equity:Opening-Balances
2024-06-02 balance Assets:Checking 1000.00 USDEventos
2024-06-01 event "location" "San Francisco, CA"Opciones
Establece configuración a nivel de archivo:
option "title" "My Ledger"
option "operating_currency" "USD"
option "documents" "docs/"
option "name_assets" "Vermoegen"Consulta la Referencia de Opciones para más información.
Plugins y Organización de Archivos
plugin "beancount.plugins.module_name"
plugin "beancount.plugins.module_name" "config-string"
include "other/file.beancount"
pushtag #project
; ...
poptag #projectReglas Importantes
- Todas las transacciones deben cuadrar: los pesos de todas las anotaciones deben sumar cero. El peso de una anotación es su importe, o su costo (
{}) o precio (@) convertido a la otra moneda cuando está presente. - Las cuentas deben abrirse antes de usarse; las cuentas cerradas no pueden aceptar anotaciones.
- Las verificaciones de saldo solo verifican la moneda especificada, se pueden usar en cuentas padre y se evalúan al inicio de su fecha (por lo que excluyen transacciones del mismo día).
- Las anotaciones de precio (
@por unidad,@@total) sí afectan el cuadre: establecen el peso de la anotación en la otra moneda.-100 USD @ 1.25 CADpesa125 CADy compensa una anotación de125 CAD; elimina el precio y la transacción ya no cuadra.
Patrones Comunes
Apertura de Cuentas con Saldo Inicial
Abre ambas cuentas, usa pad en la fecha de inicio y verifica el saldo al día siguiente (la verificación se realiza al inicio de su fecha):
2024-01-01 open Assets:Checking USD
2024-01-01 open Equity:Opening-Balances
2024-01-01 pad Assets:Checking Equity:Opening-Balances
2024-01-02 balance Assets:Checking 1000.00 USDTransacción de Inversión
2024-01-01 * "Buy stock"
Assets:Broker:Stock 10 AAPL {150.00 USD}
Assets:Broker:Cash -1500.00 USDTransacción Multimoneda
2024-01-01 * "Currency exchange"
Assets:USD -100.00 USD @ 1.25 CAD
Assets:CAD 125.00 CADComentarios
poptag #trip-to-peru
; inline comments begin with a semi-colon
* any line not starting with a valid directive is also ignored silently