Zum Inhalt springen

PDF-, E-Rechnungs- und Bild-API

Dokumente, automatisiert.Für Entwickler und KI-Agenten.

Aus Vorlagen und Daten werden PDFs, Bilder und Word-Dateien – und ZUGFeRD-E-Rechnungen und barrierefreie PDFs (PDF/UA-1), die geprüft werden, bevor sie ausgeliefert werden. Aus Ihrem Code, der CLI, einem KI-Agenten über MCP oder aus Zapier, Make und n8n.

  • Free-Plan: 100 Dokumente im Monat (je bis fünf Seiten), ohne Kreditkarte
  • Testrenderings sind in jedem Plan kostenlos
render.tsTypeScript
const render = await formfeed.renders.create({
  template: 'e-rechnung',
  data: { _invoice: invoice },
  post: { einvoice: { profile: 'en16931' } },
  settings: { pdf: { ua: true } },
});
const pdf = await formfeed.renders.download(render);
Seite 1 der E-Rechnung RE-2026-0042, die Datei, die die Anfrage darüber liefert

E-RechnungGültig

rechnung-RE-2026-0042.pdf

  • Regeln der EN 16931: kein Befund
  • PDF/A-3b: bestanden
  • PDF/UA-1 (veraPDF): bestanden
  • factur-x.xml enthalten
Das ganze Programm: Antwort, Datei und Fehlerfall →

VorlageDatenDokument

Eine Vorlage, Ihre Daten, ein Aufruf.

  1. Die Rechnungsvorlage, jeder Ausdruck darin ein Chip

    01Vorlage schreiben.

    HTML und CSS mit Jinja2, Liquid oder Handlebars, ein Entwurf auf der Arbeitsfläche oder Ihre eigene Word-Datei mit denselben Tags.

  2. data.json neben der Rechnungsvorlage, deren Summen vergrößert

    02Daten schicken.

    JSON aus Ihrem Backend, eine Zeile einer Tabelle, ein Schritt in Zapier. Summen, Datumsangaben, Seitenzahlen und der Zahlungscode sind Sache der Vorlage.

  3. data.json neben der fertigen Rechnung; jeder Wert aus den Daten ist gelb markiert

    03Dokument erhalten.

    Eine Anfrage liefert das PDF, das Bild, die Word- oder PowerPoint-Datei oder einen Link darauf. Dieselbe Anfrage in acht Sprachen.

TypeScript
import { Formfeed } from '@formfeed/sdk';

const formfeed = new Formfeed({ apiKey: process.env.FORMFEED_API_KEY! });

const render = await formfeed.renders.create({
  template: 'invoice-de',
  data: {
    invoice: {
      number: '2026-0042',
      customer: { name: 'Olvarest GmbH' },
      lines: [{ description: 'Design', qty: 8, price: 120 }],
    },
  },
  output: 'pdf',
});
const pdf = await formfeed.renders.download(render);
Python
import os

from formfeed import Formfeed

formfeed = Formfeed(api_key=os.environ["FORMFEED_API_KEY"])
render = formfeed.renders.create(
    template="invoice-de",
    data={
        "invoice": {
            "number": "2026-0042",
            "customer": {"name": "Olvarest GmbH"},
            "lines": [{"description": "Design", "qty": 8, "price": 120}],
        }
    },
    output="pdf",
)
pdf = formfeed.renders.download(render)
Shell
curl "https://api-eu.formfeed.dev/v1/renders?output=binary" \
  -H "Authorization: Bearer ff_live_..." \
  -H "Content-Type: application/json" \
  -o invoice.pdf \
  -d '{"template": "invoice-de", "data": {"invoice": {
        "number": "2026-0042",
        "customer": {"name": "Olvarest GmbH"},
        "lines": [{"description": "Design", "qty": 8, "price": 120}]}}}'
Shell
npx formfeed templates pull
npx formfeed test                    # snapshot every data set
npx formfeed render invoice-de --out invoice.pdf
Shell
claude mcp add --transport stdio formfeed \
  --env FORMFEED_API_KEY=ff_test_... -- npx -y @formfeed/mcp

# "Render invoice 2026-0042 for Olvarest GmbH and give me the link."
  1. Neue Zeile in Google Sheetsoder eine Bestellung, ein Formular, ein Deal
  2. Formfeed · Create Documentdie Spalten der Zeile füllen die Felder der Vorlage
  3. Per E-Mail senden oder in Drive ablegenZapier · Make · n8n

Der Film folgt Rechnung 2026-0042 von der Vorlage über API-Aufruf, Editor und Pull Request bis zum Agenten. Ohne Ton verständlich.


Bei jedem Rendering geprüft

E-Rechnungen und barrierefreie PDFs, geprüft, bevor sie rausgehen.

Wenn Dokumente Ihre Systeme verlassen, ohne dass jemand sie ansieht, gehört die Prüfung ins Rendering. Formfeed hält jede E-Rechnung an die Regeln der EN 16931 und an PDF/A-3b und jede PDF/UA-1-Datei an die maschinell prüfbaren Regeln, die veraPDF testet, bevor es die Datei ausliefert. Ein Fehler nennt die verletzte Regel und bei einer E-Rechnung das Feld, damit Ihr Code, Workflow oder Agent ihn beheben kann.

Der Prüfbericht des Render-Logs zur E-Rechnung: gültig, Regeln der EN 16931 ohne Befund, PDF/A-3b bestanden, die Summen im PDF, PDF/UA-1 konform

ZUGFeRD / Factur-X

E-Rechnungen

  • Eine Vorlage druckt die Rechnung und schreibt sie als XML in dieselbe Datei: ZUGFeRD 2.5 / Factur-X 1.09, Profile EN 16931 und Basic, als PDF/A-3b. XRechnung gibt es nicht.
  • Mustang prüft das XML gegen die Regeln der EN 16931, und das PDF muss die Summen zeigen, die das XML nennt.
  • In n8n und Zapier als Schritt „Create E-Invoice“; ein Agent prüft die Daten mit check_invoice, bevor er rendert.
  • Jeder Plan erzeugt Test-E-Rechnungen mit Testmarkierung, echte gibt es ab Starter.
So funktionieren E-Rechnungen →

PDF/UA-1

Barrierefreie PDFs

  • Mit pdf.ua wird die Datei für assistive Technik getaggt; Listen, Tabellen, Abbildungen und Links werden repariert, wo Chromium Lücken lässt.
  • veraPDF prüft die maschinell prüfbaren Regeln von PDF/UA-1. Im strikten Modus wird eine Datei, die durchfällt, nicht ausgeliefert, und das Ergebnis kommt mit jedem Rendering.
  • Der Editor zeigt, was einer Vorlage fehlt, an ihrem Tag, bevor etwas gerendert wird.
  • In jedem Plan ohne zusätzliche Einheit, und eine E-Rechnung kann zugleich eine PDF/UA-1-Datei sein.
So funktionieren barrierefreie PDFs →
Kostenlose Test-E-Rechnung erzeugen

Das Ausstellen von E-Rechnungen wird in Stufen Pflicht: in Frankreich seit September 2026, in Deutschland ab 2027.

KI-Agenten

Ihr Agent liefert die Daten.Formfeed macht das Dokument.

Der MCP-Server gibt Claude, ChatGPT, Cursor und Ihren eigenen Agenten 8 Werkzeuge, um eine Vorlage zu finden, die erwarteten Daten zu lesen, Daten und E-Rechnungen kostenlos zu prüfen und das PDF oder Bild zu rendern. Gehostet unter mcp.formfeed.dev oder lokal mit npx -y @formfeed/mcp.

  • Der Agent schreibt die Daten; Ihre Vorlage behält das Layout.
  • Eine abgelehnte E-Rechnung kommt Feld für Feld zurück, sodass der Agent sie selbst korrigiert.
  • Nichts Zerstörerisches: kein Veröffentlichen, kein Löschen, keine Webhooks.
  • Anleitungen für 18 Clients und Frameworks, von Claude Code bis LangChain.
Agenten einrichten

Rechnung an Olvarest GmbH: 8 Stunden Beratung zu 120 € und 20 Stunden Umsetzung zu 110 €, Nummer 2026-0042.

list_templates

get_template_schema · invoice-de

render · invoice-de · pdf

Hier ist Rechnung 2026-0042: eine Seite, 3.760,40 € inklusive USt., mit GiroCode für die Überweisung.

  • list_templates
  • get_template_schema
  • validate_template
  • check_invoice
  • render
  • convert_to_pdf
  • get_render
  • get_workspace
Claude Code, gehosteter ServerShell
claude mcp add --transport http formfeed https://mcp.formfeed.dev/mcp \
  --header "Authorization: Bearer ff_test_..."

Für Entwickler

Vorlagen in Git, getestet wie Code.

  • formfeed templates pull legt jede Vorlage in einen Ordner, formfeed test hält jeden Datensatz als Snapshot fest.
  • Eine GitHub Action rendert geänderte Vorlagen in den Pull Request.
  • Release-Kanäle, Canary-Anteile und Rollback mit einem Klick. Mit gespeichertem Schema stoppt eine Prüfung jedes Release, das Ihre Aufrufer brechen würde.
  • Idempotenzschlüssel, signierte Webhooks, Batches mit bis zu 1.000 Dokumenten und ein Render-Log, das zu jedem Rendering die Vorlagenversion, den Chromium-Build und den SHA-256 der Datei festhält.
  • Sie wechseln von einem anderen Anbieter? Der Importer wandelt um, was er kann, und listet Zeile für Zeile, was nicht.
API und CLI →
TerminalShell
npx formfeed login                 # approve in the browser
npx formfeed templates pull        # every template as files
npx formfeed test                  # compare approved snapshots
npx formfeed dev invoice-de        # preview with hot reload
npx formfeed types                 # data types for TS and Python
npx formfeed templates push        # draft versions from the files
.github/workflows/templates.ymlYAML
on: pull_request

jobs:
  templates:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write # for the preview comment
    steps:
      - uses: actions/checkout@v4
      - uses: formfeed-dev/formfeed-action@v1
        with:
          api-key: ${{ secrets.FORMFEED_TEST_KEY }}

Und ein Editor, der die gedruckte Seite zeigt.

Vervollständigung aus Ihren Daten beim Schreiben und eine Seitenvorschau, die jede Seite so zeigt, wie das PDF sie druckt: mit wiederholten Tabellenköpfen, Seitenzahlen und Summen.

Gemessen, nicht behauptet.

Seite 1 eines Berichts, dreimal. Die übliche paginierte HTML-Vorschau (Paged.js im Lieferzustand) bringt neun Karten unter. Die Formfeed-Vorschau sechs, das PDF ebenfalls.

Und die 21 Tabellen aus unserem Beitrag über Seitenumbrüche gehen in der Vorschau an denselben Zeilen auf die nächste Seite über wie im PDF, wiederholte Tabellenköpfe eingeschlossen.

Seite 1 dreimal: Paged.js im Lieferzustand mit neun Karten, die paginierte Vorschau von Formfeed mit sechs, das PDF von Chromium mit sechsWie wir es gemessen haben →

Workflows ohne Code

Kein Code? Verbinden.

Zapier, Make, n8n und Power Automate erzeugen das Dokument in einem Schritt Ihres Workflows, und aus einer Tabelle werden in einem Batch bis zu 1.000 Dokumente.

  • CSV- oder Excel-Datei ablegen, Spalten den Feldern der Vorlage zuordnen und je Zeile ein PDF erhalten, als ZIP.
  • Aus einer neuen Zeile, Bestellung oder Formulareingabe wird ein Dokument und aus einer Rechnung eine E-Rechnung.
  • Texte direkt in der Vorschau ändern. Das Layout bleibt, wie es gebaut wurde.
  • Bilder entstehen auf einer Arbeitsfläche: Ebenen an Ihre Daten gebunden, ein Titel, der sich seinem Rahmen anpasst.
  • Mit 31 fertigen Vorlagen beginnen: Rechnungen, Zertifikate, Briefe, Tickets, Etiketten.

Muss ich HTML schreiben? Nicht, um eine Vorlage zu nutzen, ihre Texte zu ändern oder sie zu verbinden. Das Layout ändert, wer HTML und CSS kann.

Integrationen →
Ein Batch aus einer Tabelle: die Spalten einer hochgeladenen CSV-Datei, den Feldern einer Zertifikatsvorlage zugeordnet.

Die Daten Ihrer Kunden

Gerendert in Frankfurt. Gelöscht nach Plan.

Rechnungen, Lohnabrechnungen und Zertifikate enthalten Namen, Anschriften und Bankdaten. So gehen wir damit um.

Der Ausstieg ist eingebaut

formfeed templates pull kopiert jede Vorlage mit ihren Daten in einen Ordner, den Sie in Git halten. Die Engine, die sie füllt, ist Open Source (MIT), und Monatspläne enden mit jedem Abrechnungsmonat.

Wo es läuft
Rendering und Datenbank in Frankfurt; gerenderte, Bibliotheks- und Vorlagendateien liegen in der EU. Das API-Gateway läuft im Netz von Cloudflare und hält dort nur kurzlebige Caches. Die Anbieter sind US-Unternehmen.
Anfragedaten werden nicht aufbewahrt
Das JSON Ihrer Anfrage dient dem Rendering und wird danach verworfen, es sei denn, Ihr Workspace bewahrt es zum Nachstellen von Fehlern auf. Ein fehlgeschlagenes Rendering behält die Seite, die es zusammengesetzt hat, samt Daten einen Tag.
Dateien laufen ab
Gerenderte Dateien werden gelöscht, wenn die Aufbewahrung Ihres Plans endet, und Sie können sie früher löschen.
Verschlüsselt
TLS auf jeder Verbindung; Datenbank, Backups und Dateispeicher sind auch im Ruhezustand verschlüsselt.
Abgeschottetes Rendering
Jedes Rendering läuft in einem eigenen Chromium-Kontext, ohne Weg in private Netze.
Schlüssel und Anmeldung
API-Schlüssel werden einmal angezeigt, nur als Hash gespeichert, auf Scopes beschränkt und widerrufbar; die Anmeldung kann einen Code aus einer Authenticator-App verlangen.
AVV nach Art. 28 DSGVO
Teil der Bedingungen jedes bezahlten Plans, für kostenlose Workspaces auf Anfrage; jeder Unterauftragsverarbeiter ist benannt.
Status öffentlich
Störungen und geplante Wartung stehen unter status.formfeed.dev.

Monatspläne in Euro, Verbrauch in Dokumenten.

Eine Einheit ist ein PDF mit bis zu fünf Seiten, ein Bild oder eine Word- oder PowerPoint-Datei. Testrenderings sind in jedem Plan kostenlos.

Pläne vergleichen →
  • Free

    0 €

    100 Einheiten pro Monat

    • 5 Vorlagen
    • 20 Test-E-Rechnungen pro Tag
  • Starter

    19 € pro Monat

    3.000 Einheiten pro Monat

    0,63 Cent je enthaltene Einheit

    • E-Rechnungen (ZUGFeRD, Factur‑X)
    • Word- und PowerPoint-Vorlagen
    • PDFs zusammenführen, schützen, mit Wasserzeichen versehen
  • Empfohlen

    Pro

    59 € pro Monat

    15.000 Einheiten pro Monat

    0,39 Cent je enthaltene Einheit

    • Canary-Releases, 10 Kanäle pro Template
    • Kopien in Ihren eigenen S3- oder R2-Bucket
    • Prioritäts-Warteschlange
  • Business

    179 € pro Monat

    60.000 Einheiten pro Monat

    0,30 Cent je enthaltene Einheit

    • Unbegrenzt viele Workspaces und Mitglieder
    • Dateien bleiben, bis Sie sie löschen
  • Nur für Unternehmer: Nettopreise zzgl. USt.
  • Free-Plan ohne Kreditkarte
  • Monatspläne zum Ende jedes Abrechnungsmonats kündbar
Kostenlos starten

Fragen vor dem Wechsel

Alles andere: hello@formfeed.dev

Können KI-Agenten es nutzen?

Ja, über den MCP-Server, gehostet unter mcp.formfeed.dev oder lokal als @formfeed/mcp: in Claude, Cursor, VS Code, Codex, Gemini CLI und weiteren Clients und in Frameworks wie LangChain, Mastra oder dem OpenAI Agents SDK. Oder Sie binden das SDK als einfaches Werkzeug ein. KI-Agenten hat Anleitungen für 18 Clients und Frameworks.

Wird die XRechnung unterstützt?

Nein. Formfeed erzeugt ZUGFeRD-/Factur-X-Rechnungen in den Profilen EN 16931 und Basic, und die deutschen Regeln nennen ZUGFeRD ab Version 2.0.1 neben der XRechnung, in jedem Profil außer Minimum und Basic WL. Mehr unter E-Rechnung.

Was heißt PDF/UA-1 hier?

Ein für assistive Technik getaggtes PDF, das die maschinell prüfbaren Regeln von PDF/UA-1 besteht, wie veraPDF sie testet. Formfeed taggt und repariert die Datei, prüft sie bei jedem Rendering und schreibt die PDF/UA-Kennung nur in eine Datei, die bestanden hat; im strikten Modus wird eine Datei, die durchfällt, nicht ausgeliefert. Ob Lesereihenfolge und Alternativtexte sinnvoll sind, ist keine Regel, die ein Validator testen kann; dieses Urteil bleibt bei Ihnen. Barrierefreie PDFs sagt, was geprüft wird.

Muss ich HTML schreiben?

Für Bilder nicht: Der visuelle Editor gestaltet sie auf einer Arbeitsfläche (Beta, in jedem Plan). PDF-Vorlagen sind HTML und CSS, aber Sie beginnen mit Bausteinen und Beispielen, und wer den Wortlaut verantwortet, ändert ihn direkt in der Vorschau. Auch vorhandene Word- und PowerPoint-Dateien können Vorlagen sein.

Was zählt als Einheit?

Ein PDF mit bis zu fünf Seiten, ein Bild oder eine Word- oder PowerPoint-Datei. Je weitere fünf Seiten eines PDFs kommt eine Einheit hinzu, ein Bericht mit 12 Seiten sind also drei, und eine E-Rechnung kostet eine mehr. Testrenderings zählen nicht. Siehe Preise.

Funktionieren meine Vorlagen von einem anderen Anbieter?

Ja. Der Importer behält ihre Vorlagensprache bei, wandelt um, was sich unterscheidet, wo er kann, und meldet alles, was er nicht abbilden kann, mit der Zeile; für einen Anbieter nimmt ein Kompatibilitäts-Endpunkt die Anfragen an, die Sie ohnehin senden, während Sie umstellen. Die Dokumentation hat für jeden eine Anleitung zum Wechsel.

Wo werden meine Daten verarbeitet?

In der EU: Rendering und Datenbank laufen in Frankfurt, gerenderte Dateien liegen in der EU. Die Daten Ihrer Anfrage werden nach dem Rendering nicht aufbewahrt, es sei denn, Ihr Workspace schaltet das ein; nur ein fehlgeschlagenes Rendering behält die Seite, die es zusammengesetzt hat, 24 Stunden. Ausgaben laufen je nach Plan ab, und Sie können sie früher löschen. Eine Kopie verlässt die EU nur, wenn Sie einen eigenen Bucket als Ziel einrichten.

Können wir unsere Vorlagen mitnehmen?

Ja. Vorlagen sind HTML und CSS mit Jinja2, Liquid oder Handlebars, und formfeed templates pull kopiert sie mit ihren Datensätzen in einen Ordner, den Sie in Git halten können. Die Engine, die sie füllt, ist Open Source unter der MIT-Lizenz, und Monatspläne sind zum Ende jedes Abrechnungsmonats kündbar.

Was ist Formfeed?

Eine API, die aus Vorlagen und JSON PDFs, Bilder, Word- und PowerPoint-Dateien, ZUGFeRD-E-Rechnungen und PDF/UA-1-Dateien macht. Vorlagen sind HTML und CSS mit Jinja2, Liquid oder Handlebars, auf einer Arbeitsfläche gestaltete Bilder oder Ihre eigenen Word- und PowerPoint-Dateien. Sie rufen sie aus Code auf (SDKs, REST, die CLI), aus KI-Agenten über MCP oder aus Zapier, Make und n8n, und Sie schreiben Vorlagen im Browser-Editor oder als Dateien in Git.

Ihre nächste Rechnung könnte ein API-Aufruf sein.

Starten Sie im Free-Plan: 100 Dokumente im Monat, kostenlose Testrenderings, keine Kreditkarte.