Configuração do Beancount para Startups
Uma base prática, copiável e colável para executar a contabilidade de uma startup em texto puro. Funciona desde o pré-seed até a Série A. Isto não é aconselhamento jurídico ou fiscal.
Gerir uma startup significa usar muitos chapéus, e um dos mais críticos é o de "bookkeeper" (responsável pela contabilidade). Antes que você possa pagar por softwares caros ou um contador em tempo integral, você precisa de um sistema que seja preciso, auditável e que não o prenda a um ecossistema proprietário. Apresentamos o Beancount: um sistema de contabilidade open-source e em texto puro.
Usar o Beancount significa que seu livro razão financeiro reside em arquivos de texto, junto com seu código em um repositório Git. Ele é controlado por versão, transparente e infinitamente personalizável. Este guia fornece uma configuração completa, copiável e colável para colocar os livros da sua startup em funcionamento desde a incorporação até a sua Série A, construída sobre princípios contábeis sólidos e baseados em regime de competência (accrual).
1) O que você irá configurar
Este guia irá orientá-lo na criação de uma configuração de contabilidade completa e de nível profissional. Ao final, você terá:
- Um livro-razão de fonte única da verdade gerenciado no Git (
main.beancount
), fornecendo um histórico completo e auditável das finanças de sua empresa. - Fava para belos relatórios e gráficos. Fava é uma interface web para Beancount que transforma seus arquivos de texto em demonstrações de resultados interativas, balanços patrimoniais e análise de fluxo de caixa.
- Uma estrutura para importadores que você pode adicionar posteriormente para automatizar a entrada de transações de suas contas bancárias, cartões de crédito, PayPal e Stripe. Começaremos manualmente para aprender o sistema e, em seguida, automatizaremos.
- Um plano de contas pronto para o regime de competência (accrual) projetado para startups modernas, com suporte integrado para receita diferida, despesas pagas antecipadamente e passivos de folha de pagamento.
- Primitivos para financiamento semente (seed), incluindo exemplos claros para registrar notas SAFE (como passivo ou patrimônio líquido) e notas conversíveis com juros.
2) Estrutura do projeto (coloque em seu repositório)
Comece criando esta estrutura de diretórios dentro do repositório Git de sua empresa. Esta organização mantém seu livro-razão limpo e escalável.
/ledger
main.beancount
/includes
accounts.beancount
opening-balances.beancount
policies.beancount
/documents
/bank
/invoices
/receipts
/importers # optional; add when you automate CSV ingestion
bank_importer.py
card_importer.py
main.beancount
: O arquivo central que reúne tudo./includes
: Contém seu plano de contas, saldos de abertura e políticas contábeis./documents
: Um local para armazenar PDFs de extratos bancários, faturas e recibos para uma trilha de auditoria limpa./importers
: Onde seus futuros scripts Python para analisar CSVs bancários irão residir.
3) main.beancount
mínimo e sensato
Este é o ponto de entrada para o seu livro-razão. Ele define algumas opções globais e inclui os outros arquivos de componentes. Copie este conteúdo para ledger/main.beancount
e personalize o título.
option "title" "Acme, Inc. Ledger"
option "operating_currency" "USD"
option "documents" "ledger/documents"
include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"
; If you later add importers, you’ll add plugin lines here.
; plugin "beancount.plugins.implicit_prices"
4) Plano de contas inicial (prioridade ao accrual)
Seu plano de contas é a lista completa de categorias para as transações financeiras de sua empresa. Este modelo inicial é construído para a contabilidade de accrual (regime de competência), que fornece uma imagem muito mais precisa da saúde de sua empresa do que a contabilidade baseada em caixa.
Coloque isso em includes/accounts.beancount
. Sinta-se à vontade para remover quaisquer contas que você não precise imediatamente.
; --- Assets ---
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:Bank:Savings USD
1970-01-01 open Assets:AR USD ; Accounts Receivable (Contas a Receber)
1970-01-01 open Assets:Prepaid:Software USD
1970-01-01 open Assets:Prepaid:Insurance USD
1970-01-01 open Assets:Deposits USD ; Security deposits (Depósitos de segurança)
1970-01-01 open Assets:Equipment USD
1970-01-01 open Assets:Intangibles USD
1970-01-01 open Assets:Crypto:BTC BTC
1970-01-01 open Assets:Other
; --- Liabilities ---
1970-01-01 open Liabilities:AP USD ; Accounts Payable (Contas a Pagar)
1970-01-01 open Liabilities:CreditCard:Corporate USD
1970-01-01 open Liabilities:DeferredRevenue USD
1970-01-01 open Liabilities:Payroll:Withholding USD
1970-01-01 open Liabilities:Payroll:EmployerTaxes USD
1970-01-01 open Liabilities:SalesTax:CA USD
1970-01-01 open Liabilities:SAFE USD
1970-01-01 open Liabilities:NotesPayable USD
1970-01-01 open Liabilities:Other
; --- Equity ---
1970-01-01 open Equity:CommonStock USD
1970-01-01 open Equity:APIC USD ; Additional Paid-in Capital (Ágio na Emissão de Ações)
1970-01-01 open Equity:SAFE USD ; If you classify SAFEs as equity (Se você classificar SAFEs como patrimônio líquido)
1970-01-01 open Equity:RetainedEarnings USD
1970-01-01 open Equity:OpeningBalances USD
; --- Income (negative balances) ---
1970-01-01 open Income:Revenue:SaaS USD
1970-01-01 open Income:Revenue:Services USD
1970-01-01 open Income:Other USD
; --- Expenses ---
1970-01-01 open Expenses:COGS USD
1970-01-01 open Expenses:Payroll:Wages USD
1970-01-01 open Expenses:Payroll:EmployerTaxes USD
1970-01-01 open Expenses:Benefits USD
1970-01-01 open Expenses:Contractors USD
1970-01-01 open Expenses:Software:Subscriptions USD
1970-01-01 open Expenses:Cloud USD
1970-01-01 open Expenses:Rent USD
1970-01-01 open Expenses:Meals USD
1970-01-01 open Expenses:Travel USD
1970-01-01 open Expenses:Marketing USD
1970-01-01 open Expenses:Legal USD
1970-01-01 open Expenses:Accounting USD
1970-01-01 open Expenses:Insurance USD
1970-01-01 open Expenses:BankFees USD
1970-01-01 open Expenses:Taxes:Income USD
1970-01-01 open Expenses:Taxes:Sales USD
1970-01-01 open Expenses:Other USD
Notas
- As contas de receita são negativas porque representam créditos na contabilidade de dupla entrada. Não se preocupe com isso; o Fava inverte automaticamente os sinais nos relatórios, para que sua receita apareça como um número positivo na demonstração do resultado.
- Mantenha categorias restritas e intencionais para começar. É muito mais fácil adicionar novas contas mais tarde do que limpar um plano de contas bagunçado e excessivamente granular.
5) Saldos de abertura (primeiro dia)
A primeira transação em seu livro-razão define o cenário. Ele registra o estado inicial de suas contas no dia em que você começa a rastrear. Coloque esta transação em includes/opening-balances.beancount
, ajustando a data e os valores para refletir sua posição inicial real.
2025-01-01 * "Opening balances"
Assets:Bank:Checking 5,000.00 USD
Liabilities:CreditCard:Corporate -500.00 USD
Equity:OpeningBalances -4,500.00 USD
Esta entrada estabelece que a empresa começou com $5.000
no banco e um saldo de $500
em seu cartão de crédito. A conta Equity:OpeningBalances
é uma conta especial usada para garantir que a transação equilibre a zero, conforme exigido pela contabilidade de dupla entrada.
6) Transações comuns de startup (copiar e colar)
Aqui estão receitas para os eventos financeiros mais comuns em uma startup em estágio inicial. Copie, cole e adapte-os para seu próprio uso.
Compra de ações do fundador (simples, somente em moeda)
Quando os fundadores compram suas ações iniciais pelo valor nominal, o dinheiro entra na empresa e é registrado como patrimônio líquido. Sua tabela de capitalização (Carta, Pulley ou uma planilha) é a fonte da verdade para a contagem de ações; o livro-razão apenas registra os dólares.
2025-01-05 * "Founder stock purchase @ par"
Assets:Bank:Checking 800.00 USD
Equity:CommonStock -0.80 USD
Equity:APIC -799.20 USD
; 8,000,000 common @ $0.0001 — counts maintained off-ledger
(Opcional) Rastreie suas próprias ações como uma commodity
Se você quiser que o livro-razão rastreie o número de ações emitidas, você pode definir suas ações como uma "commodity". Isso é mais complexo, mas fornece um registro mais completo no livro-razão.
2025-01-05 commodity ACME
name: "Acme, Inc. Common"
2025-01-05 * "Founder share issuance"
Assets:Bank:Checking 800.00 USD
Equity:APIC -799.20 USD
Equity:CommonStock -8,000,000 ACME {0.0001 USD}
SAFE cash in (escolha a classificação)
Um SAFE (Simple Agreement for Future Equity - Acordo Simples para Equidade Futura) pode ser tratado como um passivo ou como uma forma de patrimônio líquido (especificamente, "patrimônio mezzanine"). Consulte seu contador para escolher a abordagem correta e seja consistente.
; (A) Equity classification (mezzanine)
2025-02-01 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Equity:SAFE -500,000.00 USD
; (B) Liability classification (until conversion)
2025-02-01 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Liabilities:SAFE -500,000.00 USD
Quando uma rodada de preço fecha, você reclassificará o saldo do SAFE para Ações Preferenciais e Ágio na Emissão de Ações com base nos documentos de fechamento.
Nota conversível com juros acumulados
Ao contrário de um SAFE, uma nota conversível é inequivocamente um passivo que acumula juros. Você registrará o dinheiro inicial e, em seguida, registrará a despesa de juros periodicamente (por exemplo, trimestralmente).
2025-03-01 * "Convertible Note — 6% annual"
Assets:Bank:Checking 250,000.00 USD
Liabilities:NotesPayable -250,000.00 USD
2025-06-30 * "Accrue note interest Q2"
Expenses:Interest 3,750.00 USD
Liabilities:NotesPayable -3,750.00 USD
; 250,000 * 6% * 0.25 = 3,750
Venda anual de SaaS (receita diferida + reconhecimento mensal)
Este é um marco fundamental da contabilidade de accrual (regime de competência). Quando um cliente paga adiantado por um ano, você não ganha toda essa receita de uma vez. Você o registra em um passivo (DeferredRevenue
) e, em seguida, reconhece 1/12
disso a cada mês.
2025-03-10 * "Annual subscription — AcmeCo — INV-001"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD
narration: "SaaS annual prepay"
2025-03-20 * "Payment INV-001"
Assets:Bank:Checking 1,200.00 USD
Assets:AR -1,200.00 USD
; Recognize month 1/12 (repeat monthly or script it)
2025-04-01 * "Revenue recognition 1/12 — INV-001"
Liabilities:DeferredRevenue 100.00 USD
Income:Revenue:SaaS -100.00 USD
Despesa paga antecipadamente e amortização
Este é o inverso da receita diferida. Quando você paga adiantado por um serviço (como software ou seguro anual), você o registra como um ativo (Prepaid
) e, em seguida, "amortiza" ou contabiliza uma parte dele a cada mês.
2025-03-01 * "Annual software prepaid"
Assets:Prepaid:Software 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD
2025-04-01 * "Amortize prepay 1/12"
Expenses:Software:Subscriptions 100.00 USD
Assets:Prepaid:Software -100.00 USD
Folha de pagamento (dinheiro líquido, com retenções + impostos do empregador)
Uma entrada de folha de pagamento tem várias partes: a despesa salarial bruta, a despesa de imposto do empregador, o dinheiro líquido pago aos funcionários e o passivo para os impostos que você reteve e que devem ser remetidos ao governo.
2025-04-15 * "Payroll — Apr 15"
Expenses:Payroll:Wages 15,000.00 USD
Expenses:Payroll:EmployerTaxes 1,200.00 USD
Liabilities:Payroll:Withholding -4,000.00 USD
Assets:Bank:Checking -12,200.00 USD
Coleta e remessa de imposto sobre vendas (exemplo CA)
Quando você coleta o imposto sobre vendas, não é seu dinheiro. É um passivo que você deve ao estado. Você registra o passivo quando faz a venda e o quita quando remete o imposto.
2025-05-10 * "Invoice #123 — CA taxable"
Assets:AR 1,088.75 USD
Income:Revenue:SaaS -999.00 USD
Liabilities:SalesTax:CA -89.75 USD
2025-06-05 * "Payment #123"
Assets:Bank:Checking 1,088.75 USD
Assets:AR -1,088.75 USD
2025-07-20 * "Remit CA sales tax Q2"
Liabilities:SalesTax:CA 89.75 USD
Assets:Bank:Checking -89.75 USD
FX e cripto (leve)
O Beancount lida com várias moedas nativamente. Use diretivas price
para registrar taxas de câmbio e a sintaxe de custo {}
para transações específicas.
2025-03-01 price EUR 1.0832 USD
2025-03-02 * "AWS EU charge"
Expenses:Cloud 90.00 EUR
Liabilities:CreditCard:Corporate -90.00 EUR
2025-03-05 * "Buy BTC for testing"
Assets:Crypto:BTC 0.0200 BTC {3400.00 USD}
Assets:Bank:Checking -3,400.00 USD
7) Usando Fava (relatórios em um comando)
Fava é a brilhante interface web que dá vida aos dados do Beancount. É a recompensa por sua cuidadosa entrada de dados.
- Instalar:
$ pip install fava
- Executar:
$ fava ledger/main.beancount
- Visualizações úteis: Income Statement (Demonstração do Resultado), Balance Sheet (Balanço Patrimonial), Journal (Diário) (para filtrar por conta/tag) e Query (Consulta) (para consultas personalizadas semelhantes a SQL).
Filtros rápidos do Fava:
account:DeferredRevenue
: Mostra toda a atividade em sua conta de receita diferida.tag:#invoice-001
: Marque as transações relacionadas a uma fatura específica e filtre-as.from:2025-01-01 to:2025-12-31
: Concentre-se em um período financeiro específico.
8) Checklist de fechamento mensal (15–45 min)
No final de cada mês, execute esta lista de verificação para garantir que seus livros estejam precisos e atualizados. Essa disciplina torna a época de impostos e a diligência do investidor uma brisa.
- Bancos/cartões de crédito: Importe ou insira manualmente todas as transações. Concilie os saldos com seus extratos.
- AR/AP: Publique todas as faturas emitidas e contas recebidas; marque os itens pagos como liquidados.
- Receita: Publique as entradas de reconhecimento de receita mensal para todos os contratos pré-pagos.
- Pré-pagamentos: Amortize
1/12
(ou a fração apropriada) de todas as despesas pré-pagas. - Folha de pagamento: Registre o lançamento do diário do relatório do provedor de folha de pagamento.
- Imposto sobre vendas: Registre seu passivo de imposto sobre vendas para o mês.
- Instrumentos de seed: Acumule juros sobre quaisquer notas conversíveis.
- Verificações de sanidade:
- A receita da sua Demonstração do Resultado corresponde aproximadamente ao seu MRR/ARR esperado?
- Sua taxa de queima e runway se alinham ao seu plano financeiro?
$ bean-check
é executado sem erros? Os relatórios do Fava parecem corretos?
- Commit no Git com uma nota concisa e consistente (por exemplo,
close: 2025-04
).
9) Metadados e documentos (facilite as auditorias)
Seu livro-razão deve ser auto-documentado. Use metadados e vincule a documentos de origem para criar uma trilha de auditoria à prova de balas. O você do futuro (e seu contador) agradecerão.
- Adicione metadados como
payee:
,narration:
,invoice:
,customer:
, oulink:
às transações para maior clareza. - Anexe PDFs de origem (faturas, recibos, extratos bancários) à sua pasta
ledger/documents/
e vincule-os usando a tag de metadadosdocument:
. - Use tags (
#payroll
,#saas
,#vendor-aws
,#invoice-001
) para facilitar a filtragem e análise.
Exemplo:
2025-03-10 * "Annual subscription — AcmeCo" #saas #invoice-001
payee: "AcmeCo"
invoice: "INV-001"
document: "documents/invoices/INV-001.pdf"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD
10) Importar mais tarde (quando tiver tempo)
Comece inserindo as transações manualmente no primeiro ou dois meses. Esta é a melhor maneira de aprender o sistema e seus próprios padrões de gastos. Quando estiver confortável, você pode escrever importadores Python simples para automatizar o processo e reduzir o trabalho árduo.
Uma ordem de batalha típica do importador:
- CSV do banco →
Assets:Bank:Checking
- CSV do cartão de crédito →
Liabilities:CreditCard:Corporate
- Relatórios de pagamento do Stripe/PayPal → Mapeamento de receita e caixa
Mantenha seus importadores em /ledger/importers
e revise suas transações geradas como faria com qualquer outra alteração de código.
11) Políticas (coloque em includes/policies.beancount
)
Este arquivo é onde você documenta suas decisões contábeis para consistência. É um arquivo de texto simples, mas é crucial para manter a disciplina.
- Base de Accrual (Regime de Competência); reconhecer a receita de SaaS pro-rata.
- A moeda funcional é USD; registre FX na taxa diária ou na taxa de transação.
- Limite de capitalização (por exemplo, itens acima de
$2.500
tornam-se um itemAssets:Equipment
; caso contrário, são despesas imediatamente). - Viagens/Refeições: O propósito comercial deve ser documentado no campo
narration
. - Registro de patrimônio líquido: Declare explicitamente se você está usando o método somente em moeda ou compartilhamento de commodities.
- SAFEs/notas: Documente sua classificação escolhida (Passivo ou Patrimônio Líquido).
Exemplo policies.beancount
:
; Policy: Accrual basis, revenue deferred and recognized monthly.
; Policy: USD functional currency. FX gains/losses are derived from cost/price data.
; Policy: Capitalize tangible assets over $2,500 with a 3-year straight-line depreciation.
; Policy: SAFEs are recorded as Liabilities until conversion in a priced round.
12) Solução rápida de problemas
- A receita parece negativa no Diário: Isso está correto! A receita é um crédito. Os relatórios do Fava o exibirão como um número positivo.
- Saldos não zerando: Você provavelmente tem uma transação incompleta. Os lançamentos de uma transação devem somar zero. Use a visualização Diário do Fava para encontrar o culpado. Como uma medida temporária, você pode adicionar uma perna de balanceamento a uma conta
Equity:Suspense
para tornar o arquivo válido e, em seguida, investigar e corrigir a causa raiz. - Incompatibilidades de FX: Certifique-se de ter diretivas
price
para as datas relevantes ou especifique a base de custo em sua moeda operacional, como90.00 EUR {97.49 USD}
.
13) O que rastrear fora do livro-razão (manter links)
O Beancount é para suas transações financeiras, mas algumas coisas são melhor gerenciadas em sistemas dedicados. A chave é vinculá-los a partir do seu livro-razão.
- Tabela de Cap: Use Carta, Pulley ou uma planilha. Vincule aos documentos de fechamento assinados de suas transações de financiamento no Beancount.
- Consentimentos do Conselho, Plano de Ações, Relatórios 409A: Armazene-os em um local seguro e adicione metadados
link:
às transações de ações relevantes. - Declarações de Imposto: Armazene os PDFs finais e vincule-os a partir de uma transação de fechamento de fim de ano.
Arquivo inicial pronto para cópia (tudo-em-um)
Se você preferir começar com um único arquivo antes de expandir para a estrutura de inclusão, você pode simplesmente colar o conteúdo dos arquivos das seções acima em um grande main.beancount
. Você sempre pode refatorá-lo mais tarde à medida que seu livro-razão cresce.
Esta estrutura fornece uma base sólida e escalável para as finanças de sua startup. Ao manter seus livros em texto puro sob controle de versão, você ganha transparência e controle incomparáveis, preparando sua empresa para a disciplina financeira desde o primeiro dia.