Salta al contenuto principale

Creare e Tracciare Fatture con Beancount

Pubblicato Ultimo aggiornamento 6 minuti di letturaMike ThriftMike Thrift
Creare e Tracciare Fatture con Beancount

Un modello in testo semplice, un flusso di lavoro ripetibile e una singola query per "Chi mi deve ancora?"


La fatturazione può sembrare un compito noioso, incastrata tra il lavoro che hai finito e il pagamento che stai aspettando. Ma un buon processo di fatturazione è il fondamento di un flusso di cassa sano. Svolge un doppio compito: dice chiaramente ai tuoi clienti cosa devono e quando, e fornisce al tuo sistema contabile i fatti inconfutabili di cui ha bisogno.

Mentre le app SaaS dedicate possono inviare PDF automatizzati e ben presentati, spesso comportano canoni mensili e bloccano i tuoi dati in un silos proprietario. Un approccio leggero in testo semplice che utilizza Beancount offre un'alternativa potente. Puoi trasformare ogni fattura in una serie chiara di scritture contabili, ottenendo tutti i vantaggi del controllo di versione, potenti metadati e query istantanee, senza bisogno di abbonamenti.


La Fattura Minima Funzionante (Campi da Non Saltare Mai)

Prima di toccare il tuo libro mastro, hai bisogno di una fattura professionale. Il formato può essere semplice, ma i contenuti devono essere precisi. Questi campi, presi in prestito da pratiche consolidate per le piccole imprese, sono irrinunciabili.

  • Dettagli del venditore: Il nome della tua azienda e l'indirizzo fisico.
  • Dettagli del cliente: Il nome del tuo cliente e (idealmente) il suo indirizzo.
  • Numero fattura: Un ID univoco e sequenziale che non viene mai riutilizzato. INV-045 segue INV-044.
  • Data di emissione e scadenza: Indica chiaramente quando la fattura è stata emessa e quando è previsto il pagamento.
  • Voci di dettaglio: Una descrizione chiara dei servizi o prodotti, insieme a quantità, tariffa e totale della riga.
  • Imponibile, imposta e totale: Mostra il calcolo in modo che il cliente possa seguirlo facilmente.
  • Note opzionali: Uno spazio per un ringraziamento, istruzioni di bonifico o un numero d'ordine d'acquisto fornito dal cliente.

Per iniziare, abbiamo creato una serie di modelli pronti da modificare che includono tutti questi campi. Le versioni per fogli di calcolo pre-calcolano anche i totali per te.

Nota: I modelli di fattura sono in arrivo! Nel frattempo, puoi creare il tuo utilizzando i campi sopra elencati in Google Docs, Word, Fogli, Excel o qualsiasi altro formato di documento.


Registra la Fattura nel Tuo Libro Mastro

Una volta inviato il PDF della fattura al tuo cliente, devi registrarlo in Beancount. Questo è un passaggio cruciale che riconosce il ricavo nel momento in cui viene guadagnato, non solo quando viene pagato. Il processo prevede due transazioni distinte.

1. Quando emetti la fattura:

Creai una transazione che sposta l'importo totale dal tuo conto Income a Assets:AccountsReceivable. Questo crea un IOU digitale nei tuoi libri contabili.

; 2025‑07‑21 Fattura #045  Sprint di web design per Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Sprint di web design"
  Assets:AccountsReceivable          3500.00 USD  ; scadenza:2025-08-04
  Income:Design:Web
  invoice_id: "INV-045"
  contact_email: "[email protected]"
  link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

Qui, addebiti AccountsReceivable e accrediti il tuo conto Income. Nota i ricchi metadati: la data di scadenza, un invoice_id univoco e persino un link: diretto al PDF che hai inviato.

2. Quando il cliente paga:

Quando il denaro arriva sul tuo conto corrente, registri una seconda transazione per "chiudere" l'IOU. Questo sposta il saldo da AccountsReceivable al tuo conto corrente.

2025-08-01 * "Acme Corp" "Pagamento INV-045"
  Assets:Bank:Checking               3500.00 USD
  Assets:AccountsReceivable
  invoice_id: "INV-045"

Il saldo per INV-045 in Assets:AccountsReceivable è ora pari a zero e i tuoi libri contabili sono perfettamente in pareggio.

Allega il PDF: La chiave metadata link: è particolarmente potente se utilizzata con Fava, l'interfaccia web di Beancount. Fava renderà un link cliccabile direttamente nella vista della transazione, in modo che il documento originale sia sempre a portata di clic. Questo flusso di lavoro è stato immaginato già nel 2016 in una richiesta di funzionalità (GitHub).


Una Query per Elencare Tutte le Fatture Aperte

Allora, chi ti deve ancora dei soldi? Con questo sistema, non devi cercare tra email o fogli di calcolo. Hai bisogno solo di una semplice query.

Salva quanto segue in un file chiamato open-invoices.sql:

SELECT
  meta('invoice_id') AS id,
  payee,
  narration,
  date,
  number(balance) AS outstanding
WHERE
  account = "Assets:AccountsReceivable"
  AND balance != 0
ORDER BY
  date;

Ora, eseguilo dalla tua riga di comando:

bean-query books.beancount open-invoices.sql

In pochi secondi, otterrai un report aggiornato all'istante di tutte le fatture in sospeso, mostrando l'ID fattura, il cliente, la data di emissione e l'importo dovuto. Nessun software aggiuntivo richiesto.


Automatizza il Lavoro Ripetitivo

La bellezza del testo semplice è la sua scriptabilità. Puoi automatizzare le parti noiose di questo flusso di lavoro.

  • Modello + Pandoc = PDF: Mantieni il tuo modello di fattura in Markdown. Un piccolo script Python può popolare le variabili (nome del cliente, voci di dettaglio, numero fattura) e lo strumento da riga di comando Pandoc può convertirlo istantaneamente in un PDF professionale.
  • Git Pre-commit Hook: Se conservi il tuo libro mastro in Git, un semplice pre-commit hook può eseguire dei controlli prima di salvare il tuo lavoro. Può verificare che ogni nuovo invoice_id sia univoco, che le registrazioni della transazione siano in pareggio e che il file a cui si fa riferimento nei metadati link: esista effettivamente.
  • Cron Job: Imposta un'attività pianificata (un cron job) per eseguire ogni notte la tua query open-invoices.sql e inviarti il riepilogo via email. Inizierai ogni giorno sapendo esattamente chi ha bisogno di un piccolo promemoria.

Una Precauzione Realistica

Beancount è uno strumento contabile, non un servizio di fatturazione. Non invierà automaticamente solleciti di pagamento ai tuoi clienti né elaborerà i loro pagamenti con carta di credito. Il flusso di lavoro è: tu crei e invii la fattura usando il metodo che hai scelto (come i modelli sopra), e poi registri le scritture contabili nel tuo libro mastro.

Per la maggior parte dei freelancer e delle piccole realtà, questo passaggio manuale è un piccolo prezzo da pagare per un sistema contabile a prova di errore, verificabile e gratuito che possiedi e controlli completamente (beancount.io).


Prossimi Passi

Pronto a prendere il controllo della tua fatturazione? Ecco come iniziare.

  1. Scarica un modello e usalo per creare la tua prossima fattura reale, assicurandoti di utilizzare un numero fattura sequenziale.
  2. Archivia i PDF inviati in una cartella dedicata come docs/invoices/ e usa la chiave metadata link: nella tua transazione Beancount per farvi riferimento.
  3. Salva la query open-invoices.sql e rendi la sua esecuzione una parte della tua revisione finanziaria settimanale.

La contabilità in testo semplice non significa rinunciare alla cura o al controllo; significa solo che il database è grep-abile. Con un modello semplice e i frammenti di codice sopra, sarai pagato più velocemente e manterrai i tuoi libri contabili impeccabili.

Condividi questo articolo