Description
German bookkeeping requirements are prevalent in Germany, Austria and Switzerland.
It requires every transaction to have its reference document (proof).
“No transaction without reference document.”
The books are usually furthered starting from the reference documents:
- sort reference documents chronologically
- enumerate them sequentially with unique identifier, without any leap
- assignment to specific account to book the document to (group them by target account)
- make the actual transaction per account
As you see, the process is driven by the reference documents.
Reference documents can be:
- digital, single or multiple pages
- physical, single or multiple pages
Semantically:
- cash and non-cash
- outgoing invoices
- ingoing invoices
- non-cash
- bank statements
- cash
- cashier receipts
Hard requirements:
a. Progressive validity: Starting from each reference document every transaction must be verifiable.
b. Retrograde validity: Starting from each transaction, each reference document must be verifiable.
Implementation requirements:
- Do not permit any transaction without reference document (see b.)
- Transaction must refer at minimum sequential reference document number, like P123-2 (P for physical, 123 for document id, 2 for page no or sub-sequence)
- Reference documents might be referred to by one or more transactions (a reference existing in the system without a transaction should raise an error, see a.)
- Digital documents should be able to get referenced in transactions, with a click.
- Option:
- A later transaction is not considered to be valid if it uses the same reference document of a transaction that is separated by a any other transaction(s).
- Transaction dates should be consistent with used reference document ids.
Available hledger functionality:
- Available: Tags allow using keys and values: https://hledger.org/dev/hledger.html#tags
- Available: Adding file paths (they get verified by hledger to exist) via https://hledger.org/scripts.html#hledger-check-tagfiles
Additional required hledger functionality: It would be helpful to be able to
- parametrise hledger-ui in a way to add an required additional document reference field (NOT NULL).
- to view attachments in hledger-web
How to organise digital references?
Beancount suggests one scenario to organise the digital references by mirroring the accounts hierarchy.