E-Rechnung per API und KI-Agent erstellen: finismas MCP-Server
Wer eine E-Rechnung per API erstellen will, brauchte bisher entweder eine teure ERP-Integration oder viel Eigenbau rund um EN 16931, CII-XML und PDF/A-3. finisma stellt diese Fähigkeit jetzt als MCP-Server bereit: PDF plus strukturierte Rechnungsdaten rein, geprüfte ZUGFeRD-Rechnung raus. Damit erzeugen Skripte, Workflow-Tools und KI-Agenten wie Claude oder ChatGPT normkonforme E-Rechnungen, ohne selbst eine Zeile Normlogik zu implementieren.
1. Warum eine API für E-Rechnungen?
Die E-Rechnungspflicht macht aus der Rechnung ein strukturiertes Datenformat. Wo Rechnungen ohnehin maschinell entstehen, im Faktura-Skript, im CRM, im Abrechnungslauf am Monatsende, ist der Umweg über eine Weboberfläche ein Medienbruch. Die naheliegende Lösung: Das System, das die Rechnungsdaten schon hat, ruft eine E-Rechnung-API auf und bekommt die fertige ZUGFeRD-Datei zurück.
Dazu kommt eine neue Nutzergruppe: KI-Agenten. Sie können Rechnungsdaten aus E-Mails, Verträgen oder Zurufen zusammentragen, aber sie können keine normkonforme E-Rechnung ausgeben. Ein Sprachmodell schreibt plausibles XML, kein gültiges. Was fehlt, ist ein Werkzeug, das der Agent aufrufen kann und das die Normarbeit zuverlässig übernimmt. Genau dafür gibt es das Model Context Protocol.
2. Drei Wege zu finisma: Web, MCP, WebMCP
Unter der Haube nutzt alles dieselbe Funktionsschicht, nur der Zugang unterscheidet sich:
| Zugang | Für wen | Authentifizierung |
|---|---|---|
| Website | Menschen, die einzelne Rechnungen umwandeln | ohne Anmeldung nutzbar |
Remote-MCP-Serverfinisma.de/api/mcp | KI-Agenten, Skripte, Workflow-Tools (n8n, Zapier und Co.) | API-Key als Bearer-Token; Prüfen geht auch ohne Key |
| WebMCP (in der Seite) | Browser-Agenten auf finisma.de | die normale Login-Session |
Das maschinenlesbare Verzeichnis aller Tools inklusive JSON-Schemas liegt unter finisma.de/api/capabilities. Ein Agent, der die Seite nur liest, findet die Zugänge außerdem in der llms.txt.
3. Die Tools: prüfen gratis, erzeugen im Abo
verify_zugferd · kostenlos
Prüft eine PDF auf ZUGFeRD-/Factur-X-Konformität: Struktur der Einbettung, EN-16931-Geschäftsregeln per Schematron und die PDF/A-3-Anbindung eingebetteter Anhänge. Funktioniert ohne API-Key und liefert einen strukturierten Prüfbericht. Es ist dieselbe Prüfung, die auch der ZUGFeRD-Viewer im Browser ausführt.
create_zugferd · Abo
Nimmt die visuelle Rechnungs-PDF und die strukturierten Rechnungsdaten als JSON entgegen, prüft sie gegen das EN-16931-Schema und die Geschäftsregeln (Summen, Steuersätze, Pflichtfelder), erzeugt das CII-XML und bettet es als PDF/A-3 ein. Optional lassen sich Belege wie Stundenzettel gleich mit einbetten; wie das normseitig funktioniert, beschreibt der Artikel Dokumente an E-Rechnung anhängen. Fehlerhafte Daten werden abgelehnt, mit Feldpfad und Meldung im Ergebnis.
Wichtig für Kostenkontrolle und Verlässlichkeit: create_zugferd arbeitet ohne Sprachmodell. Die Erzeugung ist deterministisch, dieselbe Eingabe liefert dieselbe Rechnung. Der kreative Teil bleibt beim Agenten, die Norm bleibt bei finisma.
4. So sieht ein Aufruf aus
Der MCP-Server spricht JSON-RPC über HTTP (Streamable-HTTP-Transport). Dateien reisen Base64-kodiert im JSON. Ein Erzeugungs-Aufruf, auf das Wesentliche gekürzt:
curl -X POST https://finisma.de/api/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer fnsm_IHR_KEY" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "create_zugferd",
"arguments": {
"pdf_base64": "<Rechnungs-PDF als Base64>",
"invoice": {
"invoiceNumber": "RE-2026-042",
"issueDate": "2026-07-08",
"seller": { "name": "…", "vatId": "DE…", "address": { … } },
"buyer": { "name": "…", "address": { … } },
"lines": [ { "name": "Beratung", "quantity": 10,
"unitPriceNet": 100, "vatRatePercent": 19,
"lineNetAmount": 1000 } ],
"vatBreakdown": [ { "ratePercent": 19, "basisAmount": 1000,
"taxAmount": 190 } ],
"totalNet": 1000, "totalVat": 190, "totalGross": 1190
}
}
}
}'Die Antwort enthält die fertige ZUGFeRD-PDF Base64-kodiert im Feld pdf_base64. Wer das Ergebnis gegenprüfen will, schickt es direkt an verify_zugferd zurück: Struktur, EN-16931 und PDF/A-3 werden dann unabhängig validiert. MCP-Clients wie Claude bauen diese Aufrufe selbst zusammen; das JSON-Schema der Rechnungsdaten liefert der Server beim Tool-Listing gleich mit.
5. In vier Schritten einsatzbereit
Konto anlegen
Registrieren Sie sich auf finisma.de per Magic Link. Ein Passwort gibt es nicht, der Login kommt als E-Mail.
Abo abschließen
Das Erzeugen von Rechnungen über die API ist Teil des Abos für 8 € zzgl. MwSt. im Monat, monatlich kündbar. Das Prüfen bleibt auch ohne Abo kostenlos.
API-Key erstellen
Im Konto unter 'API-Zugang für Agenten (MCP)' einen Key anlegen. Er wird genau einmal angezeigt; finisma speichert nur einen Hash. Kompromittierte Keys lassen sich sofort widerrufen.
Client verbinden
MCP-fähige Clients wie Claude oder ChatGPT bekommen die Server-URL https://finisma.de/api/mcp und den Key als Bearer-Token. Skripte und Workflows sprechen denselben Endpoint direkt per HTTP.
6. KI-Agenten anbinden: Claude, ChatGPT, Browser
Claude und andere MCP-Clients bekommen den Server als Connector: URL https://finisma.de/api/mcp, Authentifizierung per Bearer-Token mit dem API-Key. Danach stehen beide Tools im Gespräch zur Verfügung. Der Agent sammelt die Rechnungsdaten, ruft create_zugferd auf und reicht die fertige Datei weiter.
ChatGPT unterstützt MCP-Server ebenfalls als Connector. Der Ablauf ist derselbe: Rechnung im Chat diktieren, der Agent strukturiert die Daten, finisma baut und prüft die ZUGFeRD-Datei. Eine ausführliche Schritt-für-Schritt-Anleitung dazu erscheint als eigener Artikel.
Browser-Agenten müssen den Umweg über den Remote-Server nicht gehen: finisma.de deklariert seine Tools zusätzlich in der Seite selbst, über den entstehenden WebMCP-Standard (document.modelContext). Ein Agent, der im Browser eines eingeloggten Abonnenten arbeitet, ruft die Tools direkt in der laufenden Session auf, ganz ohne API-Key.
7. Datenschutz und Grenzen
- Keine Speicherung: MCP-Aufrufe werden im Speicher verarbeitet. PDF rein, ZUGFeRD raus, danach ist nichts mehr da. Das passt zur übrigen Plattform, auf der hochgeladene Dateien nach 5 Minuten gelöscht werden.
- API-Keys als Hash: finisma speichert Keys nur als SHA-256-Hash. Ein Key wird genau einmal angezeigt und lässt sich im Konto jederzeit sofort widerrufen.
- Größen: bis 25 MB pro PDF, bis 10 MB pro Anhang, Base64-kodiert im JSON.
- Rate-Limits: 30 Prüfungen und 20 Erzeugungen pro Minute je Key beziehungsweise Aufrufer.
Und wer gar nicht automatisieren will: Für einzelne Rechnungen bleibt der Weg über die Website der einfachste. Dort können Sie kostenlos PDF in E-Rechnung umwandeln, ohne Konto und ohne Key. Warum das Thema ohnehin jeden trifft, zeigt der Überblick zur E-Rechnungspflicht ab 2027.
Jetzt direkt ausprobieren
PDF-Rechnung in ZUGFeRD umwandeln
Kostenlos, ohne Anmeldung. Dateien werden nach 5 Minuten automatisch gelöscht.
PDF hierher ziehen oder klicken
Nur PDF-Dateien · max. 20 MB
8. Häufige Fragen zur E-Rechnung-API
Die wichtigsten Antworten kompakt, für alle, die schnell eine Einschätzung brauchen.
Was kostet die E-Rechnung-API von finisma?+
Das Prüfen von Rechnungen (verify_zugferd) ist kostenlos und funktioniert sogar ohne API-Key. Das Erzeugen von ZUGFeRD-Rechnungen (create_zugferd) ist Teil des finisma-Abos für 8 € zzgl. MwSt. im Monat. Der API-Key wird im Konto erstellt und ist an das Abo gebunden, es gibt keine zusätzlichen Kosten pro Aufruf.
Was ist ein MCP-Server?+
MCP (Model Context Protocol) ist ein offener Standard, über den KI-Agenten und andere Clients Werkzeuge aufrufen. Ein MCP-Server beschreibt seine Tools maschinenlesbar mit JSON-Schemas, sodass ein Agent selbst versteht, welche Eingaben er liefern muss. finismas MCP-Server läuft unter https://finisma.de/api/mcp und funktioniert mit jedem MCP-fähigen Client, zum Beispiel Claude oder ChatGPT.
Kann ChatGPT allein eine gültige E-Rechnung erstellen?+
Nein. Ein Sprachmodell kann Rechnungstexte formulieren, aber keine normkonforme E-Rechnung ausgeben: Dafür braucht es ein EN-16931-konformes CII-XML, eingebettet in eine PDF/A-3-Datei, geprüft gegen die Geschäftsregeln der Norm. Genau diesen Teil übernimmt finisma. Der Agent liefert die Rechnungsdaten, finisma validiert sie und baut die ZUGFeRD-Datei.
Wie kommen die Dateien durch die API?+
Als Base64-Text im JSON des Tool-Aufrufs, in beide Richtungen. Die visuelle Rechnungs-PDF geht Base64-kodiert hinein, die fertige ZUGFeRD-PDF kommt Base64-kodiert zurück. Pro PDF sind bis zu 25 MB möglich, Anhänge bis 10 MB pro Datei.
Speichert finisma die Rechnungen, die über die API laufen?+
Nein. Aufrufe über den MCP-Server werden im Speicher verarbeitet: PDF und Rechnungsdaten kommen herein, die ZUGFeRD-Datei geht in derselben Antwort zurück, danach ist nichts mehr da. Es gibt keinen Zwischenspeicher und keine Ablage der Dateien.
Nutzt die Erzeugung ein Sprachmodell? Sind die Ergebnisse deterministisch?+
create_zugferd arbeitet ohne Sprachmodell. Die übergebenen Rechnungsdaten werden gegen das EN-16931-Schema und die Geschäftsregeln geprüft, daraus wird deterministisch das CII-XML erzeugt und in die PDF eingebettet. Dieselbe Eingabe liefert dieselbe Rechnung, ohne Halluzinationsrisiko.
Gibt es Rate-Limits?+
Ja, pro API-Key beziehungsweise pro Aufrufer: 30 Prüfungen und 20 Erzeugungen pro Minute. Das reicht für typische Rechnungsläufe deutlich aus; bei einer Ablehnung liefert die API die Wartezeit gleich mit.
Quellen und weiterführende Informationen
- Model Context Protocol: offizielle Spezifikation und Dokumentation
- W3C Web Machine Learning: WebMCP (Web Model Context API), Entwurf
- Forum elektronische Rechnung Deutschland (FeRD): ZUGFeRD-Spezifikation
- EN 16931-1: Semantisches Datenmodell der elektronischen Rechnung