Softwarehersteller und Entwickler
Rechnungsdaten als JSON senden, valide XRechnung (UBL oder CII) oder ZUGFeRD zurückbekommen — konform zur EN 16931. Jede Antwort nennt im Header X-Normapi-Ruleset das Regelwerk, gegen das geprüft wurde.
Aus JSON erzeugt und mit dem offiziellen KoSIT-Validator geprüft, bevor Sie die Datei bekommen. Für Ihre Software oder eine einzelne Rechnung im Browser.

Kostenlos und ohne Anmeldung, mit demselben KoSIT-Validator wie die API. Jeder Fehler mit Bedeutung und Lösung.
XML oder PDF, bis 5 MB — Datei auch einfach hierher ziehen. Ohne Anmeldung, ohne Kontingent.
Ihre Datei wird nur im Arbeitsspeicher eines Servers in der EU geprüft und danach verworfen. Wir speichern keine Rechnungsinhalte.
Ein Klick prüft die Datei hier — Download optional.
Besteht die Prüfung ohne Fehler. Guter Startpunkt für ein eigenes Mapping.
DateiDieselbe Rechnung in der zweiten zulässigen Syntax, UN/CEFACT CII.
DateiOhne BT-10 — bei Behördenrechnungen steht dort die Leitweg-ID.
DateiEin Client für TypeScript, Beispiele für PHP und Java, und jede Sprache, die HTTP spricht. Die Summen rechnet der Server.
import { generateInvoice } from '@normapi/client'
const { xml, rulesetVersion } = await generateInvoice({
invoiceNumber: 'RE-2026-0815',
issueDate: '2026-08-13',
currency: 'EUR',
buyerReference: '04011000-12345-03',
seller: { name: 'Muster Software GmbH', vatId: 'DE123456789' /* … */ },
buyer: { name: 'Beispiel Handel AG' /* … */ },
lines: [
{ name: 'Softwarelizenz', quantity: 3, unitPrice: '199.00', vatRate: 19 },
],
}, { apiKey: process.env.NORMAPI_API_KEY })curl -X POST https://api.normapi.de/v1/invoices \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $NORMAPI_API_KEY" \
--data-binary @rechnung.json \
-o rechnung.xml
# Als ZUGFeRD-PDF: ?syntax=zugferd und -o rechnung.pdf<?php
$ch = curl_init('https://api.normapi.de/v1/invoices');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => file_get_contents('rechnung.json'),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . getenv('NORMAPI_API_KEY'),
],
]);
$xml = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_RESPONSE_CODE) === 200) {
file_put_contents('rechnung.xml', $xml);
}
curl_close($ch);XRechnung 3.0.2 als UBL oder CII, ZUGFeRD 2 / Factur-X als PDF/A-3: für Behörden als XRechnung, für Unternehmen nach EN 16931. Das ZUGFeRD-PDF auf Wunsch auf Ihrem eigenen Briefkopf, einmal im Konto hochgeladen.
Als Beispiel Fall 01 der Beispielbibliothek, eine Standardrechnung zu 19 %: die Anfrage und die drei Dateien, die daraus werden, so wie der KoSIT-Validator sie angenommen hat.
Statt eines Schematron-Ausdrucks bekommt Ihr Team die Bedeutung, die Ursache und die Lösung. Für 303 Regeln, auf Deutsch und Englisch.
{
"code": "BR-DE-15",
"severity": "ERROR",
"explanation": {
"meaning": "Jede XRechnung braucht eine Käuferreferenz in BT-10 — bei Rechnungen an die öffentliche Verwaltung ist das die Leitweg-ID. …",
"fix": "Übernehmen Sie die vom Rechnungsempfänger mitgeteilte Leitweg-ID beziehungsweise Käuferreferenz in BT-10. …",
"url": "https://normapi.com/de/fehler#BR-DE-15"
}
}Als Konnektor in Claude und als Plugin in ChatGPT prüft NormAPI eine angehängte E-Rechnung, liest eine eingegangene aus und erklärt jede Regel, ohne Konto. Mit Ihrem Konto erstellen beide auch neue.

Alles läuft gegen dasselbe KoSIT-Regelwerk. Versendet wird nichts — kein Peppol-Zugangspunkt, kein Mailversand, keine Archivierung.
Rechnungsdaten als JSON senden, valide XRechnung (UBL oder CII) oder ZUGFeRD zurückbekommen — konform zur EN 16931. Jede Antwort nennt im Header X-Normapi-Ruleset das Regelwerk, gegen das geprüft wurde.
Formular ausfüllen, XRechnung oder ZUGFeRD-PDF herunterladen — ohne eigene Software und ohne Anmeldung.
Eine eingegangene E-Rechnung lesbar anzeigen und prüfen — mit einer verständlichen Fehlerliste, nicht nur Schematron-Codes.
Preis für große Volumen, SLA, Ausfall, Regelwerk-Updates und Auftragsverarbeitung — auf einer Seite, vor der Anbindung.
Seit 1. Januar muss jedes Unternehmen E-Rechnungen empfangen können.
Unternehmen mit mehr als 800.000 € Vorjahresumsatz müssen E-Rechnungen ausstellen.
Die Pflicht gilt für alle übrigen Unternehmen; Kleinunternehmer nach § 19 UStG bleiben ausgenommen.
Weil sie geprüft wird, bevor sie die API verlässt. Jedes erzeugte Dokument läuft durch denselben KoSIT-Validator wie eine hochgeladene Datei — nicht durch eine Nachbildung, sondern durch das Werkzeug der KoSIT gegen die offizielle Konfiguration. Ein 200 heißt, dass es bestanden hat.
Dass das keine Selbstverständlichkeit ist, haben wir gemessen statt behauptet. Alle drei Datensätze stehen unter CC BY 4.0:
810 öffentliche Beispielrechnungen von 19 Herausgebern, am 19. Oktober 2026 mit dem KoSIT-Validator gegen das Regelwerk v2026-08-31 geprüft: 549 bestehen.
Von elf frei zugänglichen Prüfseiten verarbeiteten drei am Tag der Messung eine XRechnung in UBL überhaupt nicht; drei weitere prüften gegen ein Regelwerk von vor dem 2. September 2026.
Zwei unabhängige Implementierungen desselben Regelwerks, dieselben 29 Dokumente: einig bei 22, uneinig bei 7.
Stand: 5. November 2026 · alle Preise netto im Monat
50 Rechnungen im Monat kostenlos, ohne Kreditkarte. Danach ab 19 € im Monat.