E-Rechnung API: XRechnung, ZUGFeRD und Peppol BIS per REST erzeugen, prüfen, lesen

Eine E-Rechnung-API nimmt Rechnungsdaten als JSON an und liefert die Datei zurück, die der Empfänger maschinell verarbeiten kann und die § 14 UStG als E-Rechnung anerkennt: eine XRechnung (UBL oder CII), eine ZUGFeRD-/Factur-X-PDF oder eine Peppol-BIS-Rechnung. Veriport tut drei Dinge über HTTPS: POST /einvoice/create schreibt die Datei aus einem JSON-Modell und prüft sie vor der Auslieferung gegen Schema und die veröffentlichten Regeln; POST /einvoice/validate prüft jede empfangene E-Rechnung; POST /einvoice/parse liest sie in dasselbe JSON oder in eine lesbare PDF zurück. Versendet wird nichts, gespeichert wird nichts.

Was muss eine E-Rechnung-API können?

Vier Dinge, die eine PDF-Vorlage nicht kann. Erstens die Formate: XRechnung für deutsche Behörden und viele Unternehmen, ZUGFeRD / Factur-X für den Rechnungsempfänger, der weiter ein PDF sehen will, Peppol BIS für das Peppol-Netz (in Belgien seit 2026 Pflicht zwischen Unternehmen). Zweitens die Prüfung vor dem Versand: Eine Datei, die BR-DE-15 oder PEPPOL-EN16931-R010 verletzt, wird vom Portal oder vom Zugangspunkt abgewiesen. Drittens den Empfang: eine erhaltene E-Rechnung lesen, prüfen und in die eigene Buchhaltung übernehmen. Viertens die Ehrlichkeit über Grenzen: welche Felder geschrieben werden, welche nicht, und was die API nicht tut (versenden, archivieren).

Die drei Aufrufe

AufrufSie sendenSie erhaltenKosten
POST /einvoice/createRechnung als JSON (InvoiceInput, Format xrechnung-ubl, xrechnung-cii, zugferd oder peppol-bis)Die Datei (XML oder PDF/A-3) mit ihrem Prüfbericht im Header Veriport-Validation; mit ?envelope=json Datei, Bericht und ergänzte Werte als JSON20 Aufrufe
POST /einvoice/validateEine XML-Datei oder eine ZUGFeRD-/Factur-X-PDFGültig oder nicht, Profil, jede Meldung mit Regel-ID, Schweregrad, XPath, Text5 Aufrufe; ohne Schlüssel 4 am Tag
POST /einvoice/parseEine empfangene E-RechnungDasselbe JSON wie bei create, plus notInJson; mit ?as=pdf eine lesbare PDF5 Aufrufe

Ein Beispiel: XRechnung erzeugen

Die Rechnungsdaten folgen den Geschäftsbegriffen der EN 16931; Summen und Steueraufschlüsselung rechnet die API aus den Positionen. Mit Idempotency-Key liefert eine Wiederholung dieselbe Datei, ohne zweite Berechnung.

invoice.json — der Fall « standard » der Prüfreihe
{
  "format": "xrechnung-ubl",
  "number": "2026-017",
  "issueDate": "2026-10-20",
  "paymentTermsDays": 14,
  "buyerReference": "EK-2026-0345",
  "deliveryDate": "2026-10-15",
  "seller": {
    "name": "Lena Hartmann — Webdesign",
    "address": {
      "street": "Lindenstraße 14",
      "postalCode": "10969",
      "city": "Berlin",
      "countryCode": "DE"
    },
    "vatId": "DE136695976",
    "contact": {
      "name": "Lena Hartmann",
      "phone": "+49 30 1234567",
      "email": "rechnung@hartmann-webdesign.example"
    }
  },
  "buyer": {
    "name": "Mustermann Maschinenbau GmbH",
    "address": {
      "street": "Industrieweg 7",
      "postalCode": "70565",
      "city": "Stuttgart",
      "countryCode": "DE"
    },
    "contact": {
      "email": "buchhaltung@mustermann.example"
    }
  },
  "payment": {
    "iban": "DE02120300000000202051"
  },
  "lines": [
    {
      "name": "Relaunch Website, Konzeption und Umsetzung",
      "quantity": 24,
      "unitCode": "HUR",
      "unitPrice": 95,
      "vat": {
        "category": "S",
        "rate": 19
      }
    },
    {
      "name": "Lizenz Bildmaterial",
      "quantity": 1,
      "unitCode": "C62",
      "unitPrice": 128.4,
      "vat": {
        "category": "S",
        "rate": 19
      }
    }
  ]
}
curl — XRechnung UBL erzeugen
curl -X POST "https://veriport.io/api/v1/einvoice/create" \
  -H "Authorization: Bearer vp_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 2026-017" \
  -D headers.txt -o xrechnung.xml \
  -d @invoice.json

Was die API nicht tut

  • Kein Versand: die API erzeugt und prüft Dateien, sie übermittelt nichts (kein Peppol-Zugangspunkt, keine E-Mail an den Empfänger).
  • Keine Speicherung: Eingabe und Datei existieren nur während der Anfrage; die GoBD-konforme Archivierung bleibt beim Rechnungssteller.
  • Keine Steuerberatung: die Datei enthält die Angaben, die Sie senden; welche Steuerkategorie gilt, entscheidet der Rechnungssteller.
  • Version 1 schreibt: Euro, Verkäufer in Deutschland, Käufer in einem EU-Mitgliedstaat, Kategorien S, Z, E, AE und K, Rechnung 380, Gutschrift 381, Rechnungskorrektur 384, Überweisung, bis 500 Positionen, Nachlässe und Zuschläge auf Belegebene. Anhänge, Anzahlungen, Positionszeiträume, Artikelnummern und Lastschrift werden mit einvoice_unsupported abgelehnt, nie stillschweigend weggelassen.

Was kostet eine E-Rechnung per API?

20 Aufrufe je erzeugter Rechnung: mit dem 10.000er-Paket ($29) sind das 500 Rechnungen, also knapp 6 Cent je Rechnung; mit dem 2.000er-Paket ($9) 100 Rechnungen zu 9 Cent. Anbieter, die auch versenden (Peppol-Zugangspunkte), nehmen 18 bis 30 Cent je Dokument inklusive Übermittlung; der Vergleich steht datiert auf der Produktseite. 100 kostenlose Aufrufe im Monat sind fünf Rechnungen oder zwanzig Prüfungen.

Questions

Versendet die API die E-Rechnung an den Empfänger?
Nein. Sie erzeugt und prüft die Datei; den Versand übernehmen Sie (E-Mail, Portal-Upload bei Behörden: ZRE, OZG-RE oder Landesportal) oder ein Peppol-Zugangspunkt. Veriport ist kein Zugangspunkt.
Genügt eine ZUGFeRD-PDF als E-Rechnung nach § 14 UStG?
Ja, ab dem Profil EN 16931 (bei ZUGFeRD « COMFORT »); die Profile MINIMUM und BASIC WL genügen nicht. Die API schreibt das Profil EN 16931.
Kann ich erhaltene E-Rechnungen damit verarbeiten?
Ja: validate sagt, ob die Datei gültig ist, parse liefert die Rechnungsdaten als JSON für die Buchhaltung und, mit ?as=pdf, eine lesbare Kopie. Der kostenlose E-Rechnungs-Viewer tut dasselbe im Browser.
Gibt es ein SDK?
Die TypeScript- und Python-Clients mit createEInvoice, validateEInvoice und parseEInvoice liegen im öffentlichen SDK-Repository; die Veröffentlichung auf npm und PyPI ist ein Schritt des Betreibers und wird im Changelog angekündigt.

100 Aufrufe im Monat ohne Karte: fünf erzeugte Rechnungen oder zwanzig Prüfungen.

Kostenlosen API-Schlüssel holen

Sources