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.


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.