Zum Inhalt springen
Invoapi
REST-API · XRechnung 3.0.2

XRechnung APIXRechnung per REST-API erstellen und prüfen

Die XRechnung API von invoapi macht aus einfachem JSON eine gültige XRechnung — in UBL oder CII, geprüft mit dem offiziellen KoSIT-Validator. Ein HTTPS-Aufruf ersetzt XML-Mapping, Schematron-Setup und Regelwerks-Updates in Ihrem eigenen Code.

100 Rechnungen kostenlos · ohne Kreditkarte · Server in Deutschland

Was die XRechnung API für Sie erledigt

Eine XRechnung ist eine XML-Datei mit über 150 möglichen Geschäftsbegriffen, zwei Syntaxen und mehreren hundert Prüfregeln. Die API nimmt Ihnen genau diesen Teil ab, damit Ihr System nur noch die Rechnungsdaten liefern muss, die es ohnehin hat.

  • XRechnung 3.0.2 aus JSON erzeugen, wahlweise UBL 2.1 oder UN/CEFACT CII
  • Summen, Rabatte und Umsatzsteuer serverseitig mit exakter Dezimalrechnung
  • Prüfung mit dem KoSIT-Validator: XML-Schema, EN-16931- und XRechnung-Schematron
  • Fehler mit Regel-ID, betroffenem Feld und konkretem Lösungsvorschlag
  • Eingehende XRechnungen prüfen und als JSON auslesen
  • Keine Speicherung der Rechnungsinhalte, Server in Deutschland

XRechnung per API erstellen: das erste Beispiel

Ein einziger POST-Aufruf an /api/v1/generate genügt. Die Felder heißen wie im Alltag — Rechnungsnummer, Käufer, Positionen —, nicht wie die XML-Elemente der Norm. Den API-Schlüssel legen Sie nach der kostenlosen Registrierung im Dashboard an.

Anfrage
curl -X POST https://api.invoapi.de/api/v1/generate \
  -H "Authorization: Bearer $INVOAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "format": "xrechnung",
    "syntax": "ubl",
    "invoice": {
      "invoice_number": "RE-2026-0042",
      "issue_date": "2026-11-02",
      "due_date": "2026-12-02",
      "currency": "EUR",
      "buyer_reference": "04011000-12345-34",
      "seller": {
        "name": "Muster GmbH", "vat_id": "DE123456789",
        "email": "rechnung@muster.de", "phone": "+49 30 1234567",
        "street": "Musterstraße 1", "postal_code": "10115",
        "city": "Berlin", "country_code": "DE"
      },
      "buyer": {
        "name": "Stadt Beispielhausen", "email": "e-rechnung@beispielhausen.de",
        "street": "Rathausplatz 1", "postal_code": "20095",
        "city": "Hamburg", "country_code": "DE"
      },
      "items": [
        { "name": "IT-Beratung", "quantity": 8, "unit": "HUR",
          "unit_price": 120, "vat_rate": 19 }
      ],
      "payment": { "means_code": "58", "iban": "DE02120300000000202051" }
    }
  }'

Die Antwort enthält die fertige XRechnung, die berechneten Summen und das Prüfergebnis. Diese Antwort stammt aus einem echten Aufruf (gekürzt):

Antwort
{
  "success": true,
  "format": "xrechnung",
  "syntax": "ubl",
  "version": "3.0.2",
  "valid": true,
  "totals": { "net": "960.00", "tax": "182.40", "gross": "1142.40",
              "payable": "1142.40", "currency": "EUR" },
  "validation": {
    "status": "valid",
    "engine": "KoSIT Validator 1.6.3",
    "scenario": "EN16931 XRechnung (UBL Invoice)",
    "summary": { "errors": 0, "warnings": 0 }
  },
  "document": {
    "filename": "RE-2026-0042.xml",
    "mime_type": "application/xml",
    "content": "<?xml version='1.0' encoding='UTF-8'?><Invoice …"
  }
}

Alle Felder beschreibt die API-Dokumentation. Ohne Code ausprobieren können Sie dasselbe im XRechnung-Generator und im Playground.

Geprüft mit dem offiziellen KoSIT-Validator

Jede XRechnung, die die API erzeugt, läuft durch denselben Validator, den auch Behörden und Rechnungsportale verwenden: den KoSIT-Validator mit dem XRechnung-Prüfszenario. Er prüft nacheinander das XML-Schema, die Regeln der europäischen Norm EN 16931 und die deutschen Zusatzregeln der XRechnung (BR-DE-…).

„Gültig“ meldet die API nur, wenn diese Regelwerke tatsächlich gelaufen sind. Findet die Prüfung einen Fehler, bekommen Sie nicht nur die Regel-ID, sondern auch das Feld in Ihrem JSON und einen Vorschlag zur Behebung — hier das häufigste Beispiel, die fehlende Leitweg-ID:

Befund aus /validate
{
  "severity": "error",
  "rule": "BR-DE-15",
  "message": "Das Element \"Buyer reference\" (BT-10) muss übermittelt werden.",
  "field": "buyer_reference",
  "business_term": "BT-10",
  "suggestion": "Set `buyer_reference` to the Leitweg-ID your customer gave you …"
}

UBL oder CII? Beide Syntaxen über eine API

Die XRechnung gibt es in zwei technischen Ausprägungen. Inhaltlich sind beide gleichwertig; welche Sie brauchen, entscheidet meist der Empfänger. Mit dem Parameter syntax wählen Sie pro Aufruf, die Daten bleiben dieselben.

UBL 2.1UN/CEFACT CII
Parameter"syntax": "ubl""syntax": "cii"
Typischer EinsatzBehörden, Peppol-NetzwerkUnternehmen, Nähe zu ZUGFeRD
WurzelelementInvoice / CreditNoteCrossIndustryInvoice
Umwandelnper /convert in CIIper /convert in UBL

Pflichtangaben der XRechnung und ihre API-Felder

Die Norm spricht in Geschäftsbegriffen (BT) und Gruppen (BG). Die Tabelle zeigt, welches JSON-Feld welchen Begriff füllt. Was sich berechnen lässt, rechnet die API selbst.

AngabeGeschäftsbegriffAPI-Feld
RechnungsnummerBT-1invoice_number
RechnungsdatumBT-2issue_date
FälligkeitsdatumBT-9due_date
Käuferreferenz / Leitweg-IDBT-10buyer_reference
Verkäufer: Name, USt-IdNr.BT-27, BT-31seller.name, seller.vat_id
Elektronische Adresse Verkäufer / KäuferBT-34, BT-49seller.email, buyer.email
Kontakt des VerkäufersBG-6aus Name, Telefon und E-Mail ergänzt
Zahlungsart, IBANBT-81, BT-84payment.means_code, payment.iban
Position: Menge, Einheit, Preis, SteuersatzBT-129, BT-130, BT-146, BT-152quantity, unit, unit_price, vat_rate
Summen und UmsatzsteuerBG-22, BG-23berechnet die API

In Ihrer Sprache: SDKs und Integrationen

Die XRechnung API ist eine normale REST-Schnittstelle — jede Sprache mit HTTP-Client kann sie nutzen. Für Python und PHP gibt es fertige Pakete, die Wiederholungen bei Tempolimits und die Fehlerklassen schon mitbringen.

Python · pip install invoapi
import invoapi

client = invoapi.Client()          # liest INVOAPI_API_KEY
rechnung = client.generate(daten, format="xrechnung", syntax="ubl")

if rechnung.is_valid:
    rechnung.save()                # RE-2026-0042.xml
PHP · composer require invoapi/invoapi-php
$invoapi  = new Invoapi\Client(getenv('INVOAPI_API_KEY'));
$rechnung = $invoapi->generate($daten, format: 'xrechnung', syntax: 'ubl');

if ($rechnung->isValid()) {
    $rechnung->saveTo($rechnung->filename());
}
Node.js · fetch
const res = await fetch("https://api.invoapi.de/api/v1/generate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.INVOAPI_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ format: "xrechnung", syntax: "ubl", invoice: daten }),
});
const { valid, document } = await res.json();

Ohne Programmierung: n8n, WooCommerce und der MCP-Server für KI-Assistenten. Details zu den Paketen: Python-SDK, PHP-SDK.

XRechnung API oder selbst bauen?

Mit Open-Source-Bausteinen wie dem KoSIT-Validator (Java) lässt sich eine XRechnung auch selbst erzeugen und prüfen. Der Aufwand steckt weniger im ersten Dokument als im Betrieb danach:

Selbst bauenXRechnung API
Mapping auf UBL/CIIeigener Code je Syntaxein JSON-Format für beide
PrüfungJava-Validator und Konfiguration selbst betreibenin jedem Aufruf enthalten
Neue XRechnung-VersionenRegelwerke und Code selbst nachziehenserverseitig, ohne Codeänderung
FehlermeldungenSchematron-Texte auf Englisch und Deutsch gemischtFeld, Regel und Lösungsvorschlag
Weitere FormateZUGFeRD, Peppol: jeweils neuZUGFeRD, Peppol, EN 16931 inklusive

Häufige Fragen zur XRechnung API

Was ist eine XRechnung API?
Eine XRechnung API ist eine Programmierschnittstelle, die aus Rechnungsdaten eine XRechnung erzeugt, also die XML-Rechnung nach dem deutschen Standard der KoSIT. Bei invoapi senden Sie die Daten als JSON an einen REST-Endpunkt und erhalten die fertige XRechnung zurück, bereits geprüft mit dem offiziellen KoSIT-Validator.
Welche XRechnung-Version erzeugt die API?
Die API erzeugt XRechnung 3.0.2, wahlweise in der Syntax UBL 2.1 oder UN/CEFACT CII. Die Prüfung läuft gegen das passende Regelwerk der KoSIT und die Regeln der EN 16931. Neue Versionen spielen wir serverseitig ein; Ihr Code bleibt gleich.
Ist die XRechnung API kostenlos?
Zum Ausprobieren ja: Mit dem kostenlosen Konto erzeugen und prüfen Sie 100 Rechnungen, ohne Kreditkarte. Danach kostet der Starter-Tarif 24 € im Monat für 500 Rechnungen, Business 49 € für 2.000 und Scale 99 € für 8.000 Rechnungen, jeweils zzgl. USt. und monatlich kündbar.
Brauche ich für eine XRechnung immer eine Leitweg-ID?
Für Rechnungen an öffentliche Auftraggeber in Deutschland ja: Die Leitweg-ID gehört in die Käuferreferenz (BT-10) und leitet die Rechnung an die richtige Behörde. Fehlt sie, meldet die Prüfung den Fehler BR-DE-15. Bei Rechnungen an Unternehmen tragen Sie stattdessen eine andere Referenz ein, zum Beispiel die Bestellnummer des Kunden.
Kann ich mit der API auch eingehende XRechnungen prüfen und auslesen?
Ja. Der Endpunkt /validate prüft jede eingehende XRechnung gegen die offiziellen Regeln und nennt zu jedem Fehler Regel, Feld und Lösungsvorschlag. Der Endpunkt /parse liest die XRechnung in strukturiertes JSON aus, das Sie direkt in Ihre Buchhaltung übernehmen können.
Versendet die API die XRechnung an Behörden?
Nein. Die API erzeugt und prüft die Datei; den Versand übernimmt Ihr System, zum Beispiel per E-Mail, über das Rechnungsportal des Bundes oder der Länder oder über einen Peppol-Zugangspunkt. So bleiben Versandweg und Nachweise in Ihrer Hand.
Werden meine Rechnungsdaten gespeichert?
Nein. Die Rechnungsinhalte werden nur für die Dauer der Anfrage verarbeitet und nicht gespeichert. Die Server stehen in Deutschland, einen Vertrag zur Auftragsverarbeitung (AVV) stellen wir bereit.

Weiterlesen

Die erste XRechnung per API — in fünf Minuten

Konto anlegen, API-Schlüssel kopieren, das Beispiel oben ausführen. 100 Rechnungen sind kostenlos.

XRechnung API: XRechnung per REST-API erstellen und prüfen · Invoapi