Pular para o conteúdo principal

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.


beancount-setup-for-startups

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:, ou link: à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 metadados document:.
  • 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:

  1. CSV do banco → Assets:Bank:Checking
  2. CSV do cartão de crédito → Liabilities:CreditCard:Corporate
  3. 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 item Assets: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, como 90.00 EUR {97.49 USD}.

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.