REST API

E-Rechnungen validieren, generieren und archivieren

Base URL & Authentifizierung

Alle Endpoints erfordern einen API-Key als Authorization-Header:

Base URL https://api.xml-invoice.io Auth Authorization: Bearer xrv_IhrApiKey12345678901234567890

Endpoints

POST /v1/assessment — Validierung POST /v1/preview — Vorschau POST /v1/render/xml — XML generieren POST /v1/render/pdf — PDF generieren POST /v1/render/datev — DATEV Export (Einzelrechnung) POST /v1/storage — Upload GET /v1/storage — Download / Listing DELETE /v1/storage — Löschen GET /public/storage — Public Download Storage-Klassen Rechnungsjournal GET /v1/invoices — Rechnungen auflisten GET /v1/invoices/{id} — Einzelrechnung abrufen POST /v1/invoices — Rechnung anlegen PUT /v1/invoices/{id} — Rechnung bearbeiten DELETE /v1/invoices/{id} — Rechnung löschen POST /v1/datev/export — DATEV Sammelexport Authentifizierung & Quota Fehler-Responses

Validierung

POST /v1/assessment

Validiert eine E-Rechnung gegen XRechnung, Peppol BIS, ZUGFeRD oder EN16931. Format und Standard werden automatisch erkannt.

Request
Content-Type application/xml oder application/pdf
Body XML-Datei (UBL/CII) oder ZUGFeRD-PDF, max. 1 MB
ParameterWerteStandardBeschreibung
retention 0 – 86400 0 Gültigkeit der Downloadlinks (Sekunden), Vorhaltezeit im temporären Laufwerk
archive data, vault   data - Permanentes Laufwerk, max. Retention 10 Jahre oder
vault - WORM-Speicher, max. Retention 10 Jahre

Response
Content-Type application/json
HeaderBeschreibung
X-Validation-Assessment accept, reject oder unknown
X-Validation-Errors Anzahl der Fehler
X-Validation-Warnings Anzahl der Warnungen
X-Validation-Format UBL oder CII
X-Validation-Standard EN16931, XRechnung oder Peppol
X-Storage-Url Download-URL der Eingabedatei
X-Validation-Report-Url Download-URL des Prüfberichts
X-Storage-Expires Ablaufzeitpunkt der Downloadlinks (ISO 8601)
X-Storage-Bucket temp, data oder vault
{ "format": "CII", "standard": "XRechnung", "valid": false, "assessment": "reject", "errors": 2, "warnings": 1, "messages": [ { "level": "error", "message": "BR-01: An Invoice shall have..." } ] }

Beispiel
# XML validieren curl -X POST "https://api.xml-invoice.io/v1/assessment" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/xml" \ --data-binary @rechnung.xml # PDF validieren + Prüfbericht 1h speichern curl -X POST "https://api.xml-invoice.io/v1/assessment?retention=3600" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/pdf" \ --data-binary @rechnung.pdf
POST /v1/preview

Erzeugt eine HTML-Vorschau einer E-Rechnung.

Request
Content-Type application/xml oder application/pdf
Body XML oder ZUGFeRD-PDF, max. 1 MB
ParameterWerteStandardBeschreibung
template preview, default, din5008 preview preview - Zusammenfassung aller in der Rechnung enthaltenen Business Terms
default - das Standard-Rechnungstemplate
din5008 - das Rechnungstemplate für DIN 5008 Geschäftsbrief

Response
Content-Type text/html; charset=utf-8
Body Vollständiges HTML-Dokument
HeaderBeschreibung
X-Template-Used Verwendetes Template

Beispiel
curl -X POST "https://api.xml-invoice.io/v1/preview?template=din5008" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/xml" \ --data-binary @rechnung.xml \ -o vorschau.html

Generierung

E-Rechnungen aus strukturierten JSON- oder CSV-Daten basierend auf EN16931 Business Terms erstellen.

POST /v1/render/xml

Generiert eine XML-E-Rechnung (UBL oder CII) aus JSON oder CSV und validiert sie anschließend.
Die Response enthält alle X-Validation-* Header des /v1/assessment-Endpunktes.

Request
Content-Type application/json oder text/csv
Body JSON-Objekt mit BT-Feldern oder CSV (Header + Datenzeilen), Beispiel-Payloads finden sich unten auf der Seite des Generators
ParameterWerteStandardBeschreibung
format ubl, cii cii XML-Syntax
cius en16931, xrechnung, peppol en16931 Profil (CIUS)
retention 0 – 86400 0 Speicherdauer (Sekunden)
archive data, vault   data - Permanentes Laufwerk, max. Retention 10 Jahre oder
vault - WORM-Speicher, max. Retention 10 Jahre
batch true, false false Listenverarbeitung (erfordert retention>0 oder archive=data|vault),
die erzeugten Dokumente werden im ausgewählten Laufwerk gespeichert,
in der Response wird eine Liste der erstellen Dateien zurückgegeben.
JSON-Body
{ "BT-1": "RE-2026-001", "BT-2": "2026-02-01", "BT-5": "EUR", "BT-27": "Muster GmbH", "BT-44": "Kunde AG", "BT-153#1": "Beratung", "BT-129#1": "10", "BT-146#1": "100.00" }
CSV-Body
BT-1,BT-2,BT-5,BT-27,BT-44,BT-153#1,BT-129#1,BT-146#1 RE-2026-001,2026-02-01,EUR,Muster GmbH,Kunde AG,Beratung,10,100.00

Erste Zeile: BT-Code-Header. Trennzeichen: Komma oder Semikolon (automatisch erkannt). Im Batch-Modus wird jede Zeile zu einer eigenen Rechnung.


Response (einzeln)
Content-Type application/xml; charset=UTF-8
Body Generierte XML-Rechnung
HeaderBeschreibung
X-Validation-* Validierungsergebnis (immer enthalten, siehe /v1/assessment)
X-Render-Url Download-URL
X-Storage-Expires Ablaufzeitpunkt (ISO 8601)
X-Storage-Bucket temp, data oder vault
Response (Batch)
{ "batch": true, "total": 3, "successful": 3, "failed": 0, "results": [ { "index": 0, "success": true, "url": "/public/storage?token=...", "token": "abc123...", "expires_at": "2026-02-01T13:00:00+01:00", "validation": { "valid": true, "assessment": "accept", "errors": 0, "warnings": 0 } } ] }

Max. Rechnungen pro Batch. Jede Rechnung verbraucht 1 Credit.


Beispiel
# Einzelne XRechnung (CII) curl -X POST "https://api.xml-invoice.io/v1/render/xml?format=cii&cius=xrechnung" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d @invoice.json \ -o rechnung.xml # Batch aus CSV mit Archivierung curl -X POST "https://api.xml-invoice.io/v1/render/xml?format=cii&cius=xrechnung&batch=true&archive=data" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: text/csv" \ --data-binary @rechnungen.csv
POST /v1/render/pdf

Generiert ein PDF/A-3 mit eingebettetem XML (ZUGFeRD / Factur-X) aus JSON oder CSV und validiert sie anschließend. Die Response enthält alle X-Validation-* Header des /v1/assessment-Endpunktes.

Request
Content-Type application/json oder text/csv
Body Identisch zu /v1/render/xml
ParameterWerteStandardBeschreibung
format ubl, cii cii XML-Syntax
cius en16931, xrechnung, peppol en16931 Profil (CIUS)
template default, din5008 preview default default - das Standard-Rechnungstemplate
din5008 - das Rechnungstemplate für DIN 5008 Geschäftsbrief
preview - Zusammenfassung aller in der Rechnung enthaltenen Business Terms
retention 0 – 86400 0 Gültigkeit der Downloadlinks (Sekunden), Vorhaltezeit im temporären Laufwerk
archive data, vault   data - Permanentes Laufwerk, max. Retention 10 Jahre oder
vault - WORM-Speicher, max. Retention 10 Jahre
batch true, false false Listenverarbeitung (erfordert retention>0 oder archive=data|vault),
die erzeugten Dokumente werden im ausgewählten Laufwerk gespeichert,
in der Response wird eine Liste der erstellen Dateien zurückgegeben.

Response
Content-Type application/pdf
Body PDF/A-3 mit eingebettetem XML
HeaderBeschreibung
X-Validation-* Validierungsergebnis (immer enthalten)
X-Template-Used default oder din5008
X-Invoice-Format CII oder UBL
X-Invoice-SHA256 SHA-256 des eingebetteten XML
X-Render-Url Download-URL
X-Storage-Expires Ablaufzeitpunkt (ISO 8601)
X-Storage-Bucket temp, data oder vault

Batch-Response identisch zu /v1/render/xml.


Beispiel
# Einzelnes PDF mit DIN-5008-Layout curl -X POST "https://api.xml-invoice.io/v1/render/pdf?format=cii&cius=xrechnung&template=din5008" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d @invoice.json \ -o rechnung.pdf
POST /v1/render/datev

Exportiert eine einzelne Rechnung als DATEV-EXTF-Buchungsstapel (CSV). Die Rechnungsdaten werden als JSON oder CSV mit Business Terms im Body übergeben. Verbraucht 1 Credit.

Request
Content-Type application/json oder text/csv
Body JSON-Objekt oder CSV mit BT-Feldern (identisch zu /v1/render/xml)
ParameterWerteStandardBeschreibung
sachkonto Numerisch   Sachkonto / Konto (Pflicht)
gegenkonto Numerisch   Gegenkonto (Pflicht)
direction incoming, outgoing   Buchungsrichtung (Pflicht): incoming = Eingangsrechnung (Vorsteuer), outgoing = Ausgangsrechnung (Umsatzsteuer)
berater_nr String 0 DATEV-Beraternummer
mandant_nr String 0 DATEV-Mandantennummer
sachkontenlaenge 4 – 8 4 Sachkontenlänge im Kontenrahmen

Response
Content-Type text/csv; charset=windows-1252
Content-Disposition attachment; filename="EXTF_Buchungsstapel_{Rechnungsnummer}.csv"
Body DATEV-EXTF-CSV mit Header (2 Zeilen) + Buchungszeilen (eine pro Rechnungsposition)

Beispiel
curl -X POST "https://api.xml-invoice.io/v1/render/datev?sachkonto=4400&gegenkonto=1200&direction=incoming" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d @invoice.json \ -o buchungsstapel.csv

Storage

Dateien hochladen, auflisten, herunterladen und löschen. Erlaubte Dateitypen: XML, PDF, CSV, TXT.

POST /v1/storage

Datei in den Storage hochladen.

Request
Content-Type multipart/form-data
Body Feld file mit Datei (XML, PDF, CSV oder TXT)
ParameterWerteStandardBeschreibung
bucket temp, data, vault temp Laufwerk
retention 1 – N temp - 86400 (24h)
data|vault - 315360000 (10J)
Automatisch löschen nach N Sekunden

Response
Content-Type application/json
{ "success": true, "path": "temp/user123/2026/02/01/abc123_file.pdf", "size": 12345, "url": "/public/storage?token=...", "expires_at": "2026-02-01T13:00:00+01:00", "content_type": "application/pdf" }

Beispiel
curl -X POST "https://api.xml-invoice.io/v1/storage?bucket=data&retention=86400" \ -H "Authorization: Bearer $API_KEY" \ -F file=@rechnung.xml
GET /v1/storage

Datei herunterladen oder Verzeichnis auflisten.

Request
ParameterWerteStandardBeschreibung
path String   Pfad zur Datei oder zum Verzeichnis wenn der Pfad auf / endet

Response (Listing)
{ "path": "temp/", "files": [ { "name": "abc123_invoice.xml", "path": "temp/user123/2026/02/abc123_invoice.xml", "size": 12345, "last_modified": "2026-02-02T12:00:00Z" } ], "count": 1 }

Beispiel
# Verzeichnis auflisten curl "https://api.xml-invoice.io/v1/storage?path=temp/" \ -H "Authorization: Bearer $API_KEY" # Datei herunterladen curl "https://api.xml-invoice.io/v1/storage?path=temp/user123/2026/02/abc.xml" \ -H "Authorization: Bearer $API_KEY" \ -o datei.xml
DELETE /v1/storage

Markiert ein Dokument als gelöscht. Die Löschung erfolgt im Vault jedoch erst wenn das Ablaufdatum erreicht ist.

Request
ParameterWerteStandardBeschreibung
path String   Vollständiger Pfad der Datei

Response
{ "success": true, "deleted": "temp/user123/2026/02/01/abc123_file.pdf" }

Beispiel
curl -X DELETE "https://api.xml-invoice.io/v1/storage?path=temp/user123/2026/02/abc.xml" \ -H "Authorization: Bearer $API_KEY"
GET /public/storage

Öffentlicher Datei-Download via Token — kein API-Key erforderlich. Die URL wird bei Generierung/Validierung mit retention > 0 zurückgegeben.

Request
ParameterWerteStandardBeschreibung
token 32-Zeichen Hex-Token   Download-Token aus der API-Response

Beispiel
curl "https://api.xml-invoice.io/public/storage?token=abc123..." -o datei.xml

Storage/Laufwerke

LaufwerkMax. AufbewahrungBeschreibung
temp 24 Stunden Temporäre Ablage für Validierungsergebnisse und Downloads
data 10 Jahre Langzeitspeicher für Rechnungen und Berichte
vault 10 Jahre Revisionssicherer Speicher mit WORM-Policy

Wird das Dokument in einen permanenten Bucket gespeichert, gilt die Retention nur für die Downloadlinks.

Rechnungsjournal

Rechnungen im Journal verwalten: anlegen, auflisten, bearbeiten und löschen. Alle Journal-Endpoints erfordern einen API-Key mit verknüpftem Benutzerkonto und verbrauchen kein Quota.

GET /v1/invoices

Listet alle Rechnungen des Benutzers paginiert auf. Unterstützt Filter, Suche und Sortierung.

Request
ParameterWerteStandardBeschreibung
page 1 – N 1 Seite
limit 1 – 100 50 Einträge pro Seite
status new, in_progress, reviewed, exported   Nach Status filtern
search String   Suche in Rechnungsnr., Verkäufer, Käufer
sort Feldname, - Prefix für absteigend -createdAt Sortierfeld, z.B. -meta.invoiceDate, meta.totalAmount

Response
{ "invoices": [ { "id": "6789abcdef0123456789abcd", "meta": { "invoiceNumber": "RE-2026-001", "invoiceDate": "2026-02-01", "sellerName": "Muster GmbH", "buyerName": "Kunde AG", "totalAmount": 119.00, "currency": "EUR" }, "status": "reviewed", "direction": "incoming", "source": "assessment" } ], "page": 1, "limit": 50, "total": 42 }

Beispiel
# Alle geprüften Rechnungen curl "https://api.xml-invoice.io/v1/invoices?status=reviewed" \ -H "Authorization: Bearer $API_KEY" # Suche nach Rechnungsnummer, sortiert nach Datum curl "https://api.xml-invoice.io/v1/invoices?search=RE-2026&sort=-meta.invoiceDate" \ -H "Authorization: Bearer $API_KEY"
GET /v1/invoices/{id}

Ruft eine einzelne Rechnung mit allen Details ab, inkl. Business Terms, Buchhaltungsdaten und Prüfergebnis.

Response
{ "id": "6789abcdef0123456789abcd", "businessTerms": { "BT-1": "RE-2026-001", "BT-2": "2026-02-01", ... }, "meta": { "invoiceNumber": "RE-2026-001", ... }, "accounting": { "debitAccount": "4400", "creditAccount": "1200" }, "factualReview": { "reviewerName": "Max Mustermann", "reviewedAt": "2026-02-10T14:30:00+01:00" }, "computationalReview": { "valid": true, "assessment": "accept", "errors": 0, "warnings": 0, "reportUrl": "/public/storage?token=..." }, "status": "reviewed", "direction": "incoming", "source": "assessment", "storageUrl": "/public/storage?token=...", "storageBucket": "vault", "createdAt": "2026-02-01T12:00:00+01:00", "updatedAt": "2026-02-10T14:30:00+01:00" }

Beispiel
curl "https://api.xml-invoice.io/v1/invoices/6789abcdef0123456789abcd" \ -H "Authorization: Bearer $API_KEY"
POST /v1/invoices

Legt eine Rechnung manuell im Journal an. Meta-Daten (Rechnungsnr., Datum, Beträge etc.) werden automatisch aus den Business Terms extrahiert.

Request
Content-Type application/json
{ "businessTerms": { "BT-1": "RE-2026-001", "BT-2": "2026-02-01", "BT-5": "EUR", "BT-27": "Muster GmbH", "BT-44": "Kunde AG", "BT-153#1": "Beratung", "BT-131#1": "100.00", "BT-152#1": "19" }, "status": "new", "direction": "incoming", "accounting": { "debitAccount": "4400", "creditAccount": "1200" } }
FeldTypPflichtBeschreibung
businessTerms Object Ja BT-Felder der Rechnung
status String Nein new (Standard), in_progress, reviewed, exported
direction String Nein incoming oder outgoing
accounting Object Nein debitAccount (Sachkonto), creditAccount (Gegenkonto)

Beispiel
curl -X POST "https://api.xml-invoice.io/v1/invoices" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d @invoice-journal.json

Rechnungen werden auch automatisch angelegt, wenn bei /v1/assessment, /v1/render/xml oder /v1/render/pdf der Parameter archive=vault gesetzt wird.

PUT /v1/invoices/{id}

Aktualisiert die bearbeitbaren Felder einer Rechnung: Buchhaltungsdaten, sachliche Prüfung, Status und Buchungsrichtung.

Request
Content-Type application/json
{ "accounting": { "debitAccount": "4400", "creditAccount": "1200" }, "factualReview": { "reviewerName": "Max Mustermann" }, "status": "reviewed", "direction": "incoming" }
FeldTypBeschreibung
accounting.debitAccount String Sachkonto (Soll)
accounting.creditAccount String Gegenkonto (Haben)
factualReview.reviewerName String Name des Prüfers — setzt reviewedAt automatisch
status String new, in_progress, reviewed, exported
direction String incoming oder outgoing

Reviewed-Gate: Der Status reviewed kann nur gesetzt werden, wenn direction, accounting.debitAccount und accounting.creditAccount vorhanden sind (entweder bereits gespeichert oder im selben Request mitgesendet). Fehlen Felder, antwortet die API mit 400 und einem missing-Array.


Beispiel
curl -X PUT "https://api.xml-invoice.io/v1/invoices/6789abcdef0123456789abcd" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{"status": "reviewed", "direction": "incoming", "accounting": {"debitAccount": "4400", "creditAccount": "1200"}}'
DELETE /v1/invoices/{id}

Markiert eine Rechnung als gelöscht. Die Rechnung wird nicht mehr in der Liste angezeigt.

Response
{ "success": true, "message": "Invoice deleted" }

Beispiel
curl -X DELETE "https://api.xml-invoice.io/v1/invoices/6789abcdef0123456789abcd" \ -H "Authorization: Bearer $API_KEY"
POST /v1/datev/export

Exportiert alle Rechnungen im Status reviewed als einen kombinierten DATEV-EXTF-Buchungsstapel (CSV). Die exportierten Rechnungen werden anschließend automatisch auf den Status exported gesetzt. Sachkonto, Gegenkonto und Buchungsrichtung werden aus den jeweiligen Rechnungsdaten im Journal übernommen. Die erzeugte CSV-Datei wird automatisch im Vault archiviert (1 Credit).

Request
Methode POST (kein Body erforderlich)
ParameterWerteStandardBeschreibung
berater_nr String 0 DATEV-Beraternummer
mandant_nr String 0 DATEV-Mandantennummer
sachkontenlaenge 4 – 8 4 Sachkontenlänge im Kontenrahmen

Response
Content-Type text/csv; charset=windows-1252
Content-Disposition attachment; filename="EXTF_Buchungsstapel_Sammelexport.csv"
Body DATEV-EXTF-CSV mit Header (2 Zeilen) + Buchungszeilen aller Rechnungen
HeaderBeschreibung
X-Storage-Url Download-URL der archivierten CSV im Vault
X-Storage-Bucket vault
X-Skipped-Invoices Kommagetrennte IDs von Rechnungen, die wegen fehlender Pflichtdaten (BT-Daten, Sachkonto, Gegenkonto oder Buchungsrichtung) übersprungen wurden
CodeBeschreibung
200 CSV-Download, alle Rechnungen auf exported gesetzt, CSV im Vault archiviert
404 Keine Rechnungen im Status reviewed vorhanden

Archivierung

Die exportierte CSV-Datei wird automatisch im vault-Laufwerk archiviert (Pfad: {userId}/{YYYY/MM/DD}/{id}.export.datev.csv). Die Archivierung verbraucht 1 Credit. Ist kein Vault-Zugang konfiguriert, erfolgt der Export ohne Archivierung und ohne Credit-Verbrauch.


Beispiel
# Alle freigegebenen Rechnungen als DATEV-CSV exportieren curl -X POST "https://api.xml-invoice.io/v1/datev/export" \ -H "Authorization: Bearer $API_KEY" \ -o EXTF_Buchungsstapel_Sammelexport.csv # Mit optionalen DATEV-Parametern curl -X POST "https://api.xml-invoice.io/v1/datev/export?berater_nr=12345&mandant_nr=67890" \ -H "Authorization: Bearer $API_KEY" \ -o buchungsstapel.csv

Im Unterschied zu POST /v1/render/datev (Einzelexport mit BT-Daten im Body) exportiert dieser Endpoint alle freigegebenen Rechnungen auf einmal direkt aus dem Journal.

Authentifizierung & Quota

API-Key

Der API-Key wird bei der Registrierung erstellt. Format: xrv_ + 32 alphanumerische Zeichen.

# Als Authorization-Header (empfohlen) Authorization: Bearer xrv_IhrApiKey12345678901234567890 # Oder als eigener Header X-API-Key: xrv_IhrApiKey12345678901234567890

Quota abfragen

curl "https://api.xml-invoice.io/v1/quota" \ -H "Authorization: Bearer $API_KEY"
{ "tier": "beta", "tierName": "Beta", "requests": { "limit": 1000, "used": 42, "remaining": 958, "reset": "2026-03-01T00:00:00+01:00", "period": "month" } }

Rate-Limit-Header

HeaderBeschreibung
X-RateLimit-Limit Max. Requests pro Minute pro IP
X-RateLimit-Remaining Verbleibende Requests in diesem Fenster
X-RateLimit-Reset Unix-Timestamp, wann das Limit zurückgesetzt wird

Quota-Header

HeaderBeschreibung
X-Quota-Limit Monatliches Kontingent
X-Quota-Used Verbrauchte Requests diesen Monat
X-Quota-Remaining Verbleibende Requests
X-Quota-Reset ISO-8601-Zeitpunkt der nächsten Periode

Fehlgeschlagene Requests (4xx, 5xx) verbrauchen kein Quota.

Fehler-Responses

Alle Fehler werden als JSON zurückgegeben:

{ "error": "Kurze Fehlermeldung", "message": "Detaillierte Beschreibung" }
CodeBedeutungBeispiel
400 Bad Request Fehlende Daten, ungültiges Format, ungültige Parameter
401 Unauthorized Fehlender oder ungültiger API-Key
403 Forbidden Kein Zugriff auf Bucket oder Funktion
413 Payload Too Large Datei überschreitet Größenlimit
415 Unsupported Media Type Nicht erlaubter Dateityp beim Upload
429 Too Many Requests Rate-Limit oder Quota erschöpft
503 Service Unavailable Validator-Service nicht erreichbar

Haftungsausschluss: Wir übernehmen keine Gewähr für die Ergebnisse der Validierung und des XML/PDF-Renderers. Die auf dieser Website veröffentlichten Informationen wurden teilweise mit Unterstützung von KI recherchiert und aufbereitet. Trotz sorgfältiger Kontrolle und regelmäßiger Überprüfung können wir keine Haftung für die Richtigkeit, Vollständigkeit oder Aktualität der bereitgestellten Inhalte übernehmen. Wenn Sie Fehler finden oder Verbesserungsvorschläge haben, freuen wir uns über Ihr Feedback.

Compliance: Wir validieren gegen den offiziellen KoSIT Validator 1.6.1 mit den Konfigurationen XRechnung 3.0.2 und Peppol BIS 3.0.20. Die Images sind auf Docker Hub veröffentlicht, die Dockerfiles sind auf GitHub einsehbar.

Keine Steuer- oder Buchhaltungsberatung: Wir bieten keine Beratung in Steuer- oder Buchhaltungsfragen an. Bitte wenden Sie sich für solche Fragen an einen Steuerberater oder ein Steuerbüro.