E-Rechnung per API: E-Rechnungen kostenlos erstellen, lesen und prüfen

Das Wichtigste in Kürze

  • Die REST-API von e2invoice bietet drei Kernfunktionen: E-Rechnung erstellen (POST /api/invoice/simple), E-Rechnung lesen (POST /api/invoice/read) und E-Rechnung validieren (POST /api/invoice/validate).
  • Erzeugt wird ZUGFeRD/Factur-X im Profil EN 16931 – ein PDF/A-3 mit eingebetteter XML-Rechnung.
  • Kostenlos: 10 Aufrufe pro Tag ohne Anmeldung, unbegrenzt mit kostenlosem API Key aus dem Dashboard.
  • Vollständige OpenAPI-Dokumentation unter /api/docs.

Übersicht der Endpunkte

Methode Pfad Zweck Zählt zum Tageslimit
POST /api/invoice/simple E-Rechnung aus JSON erstellen ja
GET /api/invoice/{id}/pdf PDF mit eingebetteter XML abrufen (24 h gültig) nein
POST /api/invoice/read XML/PDF auslesen, Daten als JSON ja
POST /api/invoice/validate XML/PDF nach EN 16931 und XRechnung prüfen ja
GET /api/invoice/rate-limit Verbleibendes Tageskontingent nein

Authentifizierung und Limits

Für Tests genügt es, die API ohne Key aufzurufen: Pro Nutzer und Tag sind 10 Aufrufe frei. Für den produktiven Einsatz legen Sie nach dem Login unter Dashboard → API Keys kostenlos einen Key an und senden ihn mit jeder Anfrage:

-H "x-api-key: e2i_IHR_API_KEY"
# oder
-H "Authorization: Bearer e2i_IHR_API_KEY"

Mit Key ist die Nutzung unbegrenzt. Ohne Key enthält jede zählende Antwort die Header X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset; ist das Kontingent erschöpft, antwortet die API mit HTTP 429 und Retry-After.

E-Rechnung erstellen

Der Endpunkt POST /api/invoice/simple nimmt die Rechnungsdaten als JSON entgegen, berechnet Positionsbeträge, Umsatzsteuer je Steuersatz und Summen und liefert eine configId samt Download-URL zurück.

curl -X POST https://www.e2invoice.com/api/invoice/simple \
  -H "Content-Type: application/json" \
  -H "x-api-key: e2i_IHR_API_KEY" \
  -d '{
    "invoiceNumber": "RE-2026-001",
    "invoiceDate": "2026-09-27",
    "dueDate": "2026-10-11",
    "buyerReference": "04011000-12345-67",
    "seller": {
      "name": "Muster GmbH",
      "address": "Hauptstraße 1",
      "postCode": "10115",
      "city": "Berlin",
      "email": "rechnung@muster.de",
      "phone": "+49 30 123456",
      "contactPerson": "Max Mustermann",
      "vatId": "DE123456789",
      "legalForm": "GmbH",
      "registrationNumber": "HRB 12345",
      "registrationCourt": "Amtsgericht Berlin",
      "managingDirectors": "Max Mustermann"
    },
    "buyer": {
      "name": "Kunde AG",
      "address": "Kundenweg 2",
      "postCode": "80331",
      "city": "München"
    },
    "items": [
      { "name": "Beratung", "quantity": 8, "unit": "HUR", "price": 120, "vatRate": 19 }
    ],
    "bankAccount": { "iban": "DE89370400440532013000", "bic": "COBADEFFXXX" }
  }'

Die Antwort enthält documentUrl – darüber laden Sie das fertige PDF mit eingebetteter XML herunter:

curl -o RE-2026-001.pdf "https://www.e2invoice.com/api/invoice/<configId>/pdf"

Wichtige Optionen:

  • documentType: invoice, credit_note, corrected_invoice, cancellation, prepayment_invoice (Anzahlung), partial_invoice (Abschlag), final_invoice (Schlussrechnung) sowie die Bauleistungs-Typen nach VOB
  • prepaidAmount, prepaidVatAmount, precedingInvoices: Verrechnung von Abschlägen in der Schlussrechnung (Details)
  • items[].vatCategory und items[].vatExemptionReason: Steuerbefreiungen, Kleinunternehmer, Reverse Charge
  • seller.taxNumber, seller.legalForm, seller.registrationCourt, seller.managingDirectors: Impressums- und Pflichtangaben

Ungültige Eingaben beantwortet die API mit HTTP 400 und einer Liste aller Fehler mit Feldpfad, zum Beispiel seller: Seller must provide at least one of: vatId, taxNumber or registrationNumber (BR-CO-26).

E-Rechnung lesen

POST /api/invoice/read nimmt eine Datei als multipart/form-data im Feld file entgegen – XRechnung (UBL oder CII), ZUGFeRD oder Factur-X als XML oder PDF:

curl -X POST https://www.e2invoice.com/api/invoice/read \
  -H "x-api-key: e2i_IHR_API_KEY" \
  -F "file=@eingangsrechnung.pdf"

Die Antwort enthält die normalisierten Rechnungsdaten (invoice) mit Verkäufer, Käufer, Positionen, Umsatzsteuer, Summen, Zahlungsinformationen, Anhängen und Verweisen auf vorherige Rechnungen, außerdem das Prüfergebnis (validation) und die Roh-XML (xml). Die Feldnamen sind unabhängig davon, ob die Quelle UBL oder CII ist – ideal für den automatischen Import in eine Buchhaltung.

E-Rechnung validieren

const form = new FormData();
form.append('file', fileInput.files[0]);

const response = await fetch('https://www.e2invoice.com/api/invoice/validate', {
  method: 'POST',
  headers: { 'x-api-key': 'e2i_IHR_API_KEY' },
  body: form,
});
const result = await response.json();

if (!result.valid) {
  for (const error of result.errors) {
    console.log(`${error.rule} (${error.path}): ${error.message}`);
  }
}

Jeder Befund enthält die Regel-ID (z. B. BR-CO-15), das betroffene Feld (z. B. BT-112) und eine Beschreibung. Welche Fehler am häufigsten auftreten und wie man sie behebt, erklärt der Artikel E-Rechnung prüfen: Die häufigsten Validierungsfehler.

Gespeicherte Rechnungen: Storno und Schlussrechnung

Mit API Key und "store": true werden erstellte Rechnungen zusätzlich im Konto gespeichert; die Antwort enthält dann invoiceId. Darauf bauen zwei Abläufe auf:

  • Stornieren: POST /api/invoices/{invoiceId}/cancel mit { "invoiceNumber": "ST-2026-001" } erzeugt die Stornorechnung (Typcode 384) mit allen Positionen der Originalrechnung als negative Beträge und Verweis auf das Original.
  • Schlussrechnung aus Abschlägen: POST /api/invoice/simple mit documentType: "final_invoice" und partialInvoiceIds – Verweise, gezahlter Bruttobetrag und enthaltene Umsatzsteuer werden aus den gespeicherten Abschlagsrechnungen übernommen.

Über /api/contacts lassen sich außerdem Absender und Empfänger im Adressbuch speichern, deren Felder direkt als seller/buyer verwendet werden können.

Datenschutz

Rechnungsdaten für das Erstellen werden 24 Stunden vorgehalten, damit das PDF abgerufen werden kann, und danach automatisch gelöscht. Dateien zum Lesen und Validieren werden nicht gespeichert. Alle Server stehen in Deutschland.

Häufige Fragen zum Thema

E-Rechnung per API: E-Rechnungen kostenlos erstellen, lesen und prüfen

Ja. Ohne Anmeldung sind 10 Aufrufe pro Tag für Erstellen, Lesen und Validieren frei. Mit einem kostenlosen API Key, den Sie nach dem Login im Dashboard anlegen, ist die Nutzung unbegrenzt.

Bereit für Ihre E-Rechnung?

Erstellen Sie neue E-Rechnungen oder öffnen Sie bestehende Dateien

Newsletter abonnieren

Bleiben Sie auf dem Laufenden über neue Updates, Termine und Tipps rund um E-Rechnungen und e2invoice.