Logsiegel

German Federal Ministry of Finance circular of 28 November 2019, last amended 2024; Sections 146, 147 AO

What the GoBD require when an AI agent touches the books, and what Logsiegel contributes

The GoBD, the German principles for the proper keeping of books and records in electronic form, require that every posting and every change is recorded traceably and unalterably. As soon as an AI agent reads invoices, matches source documents or prepares postings, it becomes part of that process, and the tax audit will ask what it did and when.

Who this applies to

Every business in Germany that is required to keep books and that uses AI in document processing, invoice capture, account assignment or dunning, plus tax advisers and vendors of accounting software who offer such agents. The principles apply regardless of whether a person or a program does the preparatory work.

What the regulation requires in terms of records

The relevant margin numbers of the ministry circular and the statutory basis:

ReferenceRequirement
Para. 30 to 35Traceability and verifiability: an expert third party must be able to get an overview of the business transactions within a reasonable time; processing must be traceable without gaps (progressive and retrograde verifiability).
Para. 58 to 60Unalterability: a posting or record must not be changed in such a way that the original content can no longer be established. Changes are to be logged, in a way that keeps the time and the content of the change visible.
Para. 36 to 57Completeness, accuracy, timely capture, order: every business transaction is to be captured completely and promptly.
Para. 151 to 155Process documentation: a description of the data processing procedure including the programs used, the controls and the retention. An AI agent belongs in that description.
Section 146(4) AOThe statutory basis of unalterability: postings and records must not be changed in such a way that the original content can no longer be established.
Section 147 AORetention: books and records for ten years, accounting source documents for eight years after the 2025 reduction; data access by the tax administration (Z1 to Z3).

What Logsiegel contributes today

What is in progress planned

What Logsiegel does not do

  • Not an accounting system. Logsiegel does not post, does not keep accounts and does not replace the unalterability and change history in your accounting software. It records what the agent did, alongside.
  • Process documentation. It has to describe the agent; Logsiegel supplies the “logging” part, not the document.
  • Substantive accuracy. Whether the agent assigned the right account is not something a log can show. It shows what the agent proposed and who approved it.
  • Certification. There is no GoBD certification, neither for Logsiegel nor for any other software; the ministry circular says so explicitly (para. 179 et seq.).
  • Completeness. What is proven is that the recorded material is unaltered, never that everything was recorded. That is an integration question: the adapter has to sit at a point every action must pass (LiteLLM today, MCP proxy in progress).
  • Protection against the operator itself. Whoever holds the signing key could rewrite the trail and sign it again. That comes to light precisely when somebody else holds an earlier checkpoint or receipt. So hand your checkpoints out; counter-signing by an independent witness is the next stage of the project.
  • Time. Timestamps in the trail are a claim by the operator until they are counter-signed by a witness or by a qualified timestamping service.
  • Legal assessment. Whether your system falls under the regulation, which duties apply in detail and whether a receipt is enough in a given case is decided by your legal or compliance review, not by this tool.

How to put it to work

1. Install it and create a trail

The SDK is Python, Apache 2.0, no server and no account. The origin (origin) names the system whose actions are being recorded.

pip install logsiegel
logsiegel init ./trail --origin "acme.example/support-agent"

2. Plug the adapter in at the point every action must pass

If your AI traffic runs through LiteLLM, every completion becomes a signable inference entry, and errors are recorded as an anomaly. Human interventions you record explicitly, as an event of their own.

import litellm
from logsiegel.integrations.litellm_logger import LogsiegelLogger

litellm.callbacks = [LogsiegelLogger("/var/lib/logsiegel/prod", store_payload=True)]

3. Record approvals

Every approval or rejection of an agent proposal becomes an entry with the person handling it and a reference to the original proposal.

logsiegel log ./trail --event human_override \
  --attr actor="accounting@acme.example" --attr decision=approved --attr ref_seq=1284

4. Create checkpoints and hand them out

Create checkpoints regularly (via cron, for instance) and put them outside your own infrastructure: with the auditor, with the customer, in someone else's repository. Only a checkpoint you no longer control alone makes the trail hold up against yourself.

logsiegel checkpoint ./trail
logsiegel verify ./trail

5. Put the trail and the checkpoints into the process documentation

Describe in the process documentation that the agent's actions are recorded with Logsiegel, where checkpoints are filed, and how verification with logsiegel verify and the dossier export work for the tax administration's data access.

More regulations: EU AI Act GDPR DORA NIS2 / critical infrastructure ISO/IEC 27001 ISO/IEC 42001 eIDAS Overview

Legal status September 2026. This page is a technical assessment by the project, not legal advice and not a conformity statement. Please check the references against the current text of the law. Corrections welcome via GitHub issue.