Este é um guia de referência conciso e abrangente para a sintaxe da linguagem Beancount, combinando estrutura prática, regras e exemplos. Para mais detalhes, consulte a Folha de Consulta Rápida.
Visão Geral
Beancount é um sistema de contabilidade de partidas dobradas em texto simples. Sua linguagem é estruturada em três blocos principais:
- Commodities (moedas, ações, pontos, etc.)
- Contas (livros-razão hierárquicos e categorizados)
- Diretivas (entradas datadas que registram eventos ou configurações)
Commodities
Commodities são sempre escritas em maiúsculas, ex.: USD, EUR, AAPL, BTC, MILES, HOURS.
Contas
Contas são nomes hierárquicos separados por dois-pontos e capitalizados. Elas devem começar com um dos cinco tipos de conta raiz:
| Nome | Tipo | Conteúdo Típico | Exemplo |
|---|---|---|---|
Ativos | + | Dinheiro, Banco, Investimentos | Ativos:ContaCorrente |
Passivos | - | Cartões de Crédito, Empréstimos | Passivos:CartaoDeCredito |
Receitas | - | Salário, Juros | Receitas:EmpregadorA |
Despesas | + | Compras, Contas | Despesas:Alimentacao:Mercado |
PatrimonioLiquido | - | Saldos de Abertura/Fechamento | PatrimonioLiquido:Abertura |
- Os componentes devem ser capitalizados, separados por dois-pontos (
:), sem espaços. - Números e hífens são permitidos nos componentes.
- Os nomes das contas raiz podem ser personalizados via opções (veja abaixo).
Diretivas
Diretivas são as declarações centrais em um arquivo Beancount. A maioria começa com uma data, seguida pelo tipo de diretiva e argumentos. Elas são processadas em ordem cronológica (por data), não na ordem do arquivo.
Formato geral:
YYYY-MM-DD <directive> <arguments...>Diretivas Comuns e Exemplos
Abertura e Fechamento de Contas
2023-01-01 open Assets:Checking USD,EUR ; Optionally specify allowed currencies
2023-12-31 close Assets:CheckingDeclaração de Commodities
2020-07-22 commodity AAPL
name: "Apple Inc."Declarações de Preço
2022-04-30 price AAPL 150.00 USDNotas e Documentos
2022-03-20 note Assets:Checking "Asked about refund"
2022-03-20 document Assets:Checking "statements/2022-03.pdf"Transações
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 Lançamentos
; 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:BankVerificações de Saldo e Preenchimento
O pad deve ser datado antes do balance que ele complementa, porque a verificação é feita no início do dia:
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"Opções
Defina configurações de todo o arquivo:
option "title" "My Ledger"
option "operating_currency" "USD"
option "documents" "docs/"
option "name_assets" "Vermoegen"Consulte a Referência de Opções para mais informações.
Plugins e Organização de Arquivos
plugin "beancount.plugins.module_name"
plugin "beancount.plugins.module_name" "config-string"
include "other/file.beancount"
pushtag #project
; ...
poptag #projectRegras Importantes
- Todas as transações devem equilibrar: a soma dos pesos de todos os lançamentos é zero. O peso de um lançamento é o seu valor, ou o seu custo (
{}) ou preço (@) convertido para a outra moeda quando presente. - As contas devem ser abertas antes do uso; contas fechadas não podem receber lançamentos.
- As verificações de saldo verificam apenas a moeda especificada, podem ser usadas em contas pai e são avaliadas no início da sua data (portanto, excluem transações do mesmo dia).
- Anotações de preço (
@por unidade,@@total) afetam o equilíbrio: elas definem o peso do lançamento na outra moeda.-100 USD @ 1.25 CADpesa125 CADe compensa um lançamento de125 CAD; remova o preço e a transação não equilibra mais.
Padrões Comuns
Abertura de Contas com Saldo Inicial
Abra ambas as contas, use pad na data de início e verifique o saldo no dia seguinte (a verificação é feita no início da sua data):
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 USDTransação de Investimento
2024-01-01 * "Buy stock"
Assets:Broker:Stock 10 AAPL {150.00 USD}
Assets:Broker:Cash -1500.00 USDTransação Multi-Moeda
2024-01-01 * "Currency exchange"
Assets:USD -100.00 USD @ 1.25 CAD
Assets:CAD 125.00 CADComentários
poptag #trip-to-peru
; inline comments begin with a semi-colon
* any line not starting with a valid directive is also ignored silently