Zum Inhalt springen

Für ERP, Branchensoftware und SaaS

E-Rechnungen, die jede Prüfung bestehen. Per API.

Ein JSON-Aufruf liefert eine berechnete XRechnung (UBL oder CII) und ZUGFeRD, geprüft mit dem KoSIT-Validator.

20 Testrechnungen, keine Zahlungsdaten. OpenAPI-Spezifikation zum Download.

Für Geschäftsführung und Produkt
Selbst bauen oder einbinden? Der Business Case auf einen Blick

# sellerId: ID Ihres Verkäufers aus dem Portal
curl -X POST https://api.fakturnaut.com/v1/invoices \
  -H "Authorization: Bearer $FAKTURNAUT_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid)" \
  --data @- <<'JSON'
{
  "sellerId": "5b1d7f0e-3c2a-4e8b-9f61-2d4c8a7e9b03",
  "number": "RE-2026-0042",
  "issueDate": "2026-11-02",
  "dueDate": "2026-12-02",
  "buyerReference": "PO-4711",
  "buyer": {
    "name": "Muster GmbH",
    "electronicAddress": "rechnung@muster-gmbh.example",
    "electronicAddressScheme": "EM",
    "address": {
      "street": "Musterstraße 1",
      "city": "Berlin",
      "postCode": "10115",
      "country": "DE"
    }
  },
  "lines": [
    {
      "name": "Softwarelizenz November",
      "quantity": 1,
      "unitCode": "C62",
      "netPrice": 490,
      "vatRate": 19
    },
    {
      "name": "Einrichtung",
      "quantity": 4,
      "unitCode": "HUR",
      "netPrice": 95,
      "vatRate": 19
    }
  ]
}
JSON
// sellerId: ID Ihres Verkäufers aus dem Portal
const invoice = {
  "sellerId": "5b1d7f0e-3c2a-4e8b-9f61-2d4c8a7e9b03",
  "number": "RE-2026-0042",
  "issueDate": "2026-11-02",
  "dueDate": "2026-12-02",
  "buyerReference": "PO-4711",
  "buyer": {
    "name": "Muster GmbH",
    "electronicAddress": "rechnung@muster-gmbh.example",
    "electronicAddressScheme": "EM",
    "address": {
      "street": "Musterstraße 1",
      "city": "Berlin",
      "postCode": "10115",
      "country": "DE"
    }
  },
  "lines": [
    {
      "name": "Softwarelizenz November",
      "quantity": 1,
      "unitCode": "C62",
      "netPrice": 490,
      "vatRate": 19
    },
    {
      "name": "Einrichtung",
      "quantity": 4,
      "unitCode": "HUR",
      "netPrice": 95,
      "vatRate": 19
    }
  ]
};

const response = await fetch('https://api.fakturnaut.com/v1/invoices', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.FAKTURNAUT_KEY}`, // fkn_test_…
    'Content-Type': 'application/json',
    'Idempotency-Key': crypto.randomUUID(),
  },
  body: JSON.stringify(invoice),
});
const issued = await response.json();
<?php
// sellerId: ID Ihres Verkäufers aus dem Portal
$invoice = <<<'JSON'
{
  "sellerId": "5b1d7f0e-3c2a-4e8b-9f61-2d4c8a7e9b03",
  "number": "RE-2026-0042",
  "issueDate": "2026-11-02",
  "dueDate": "2026-12-02",
  "buyerReference": "PO-4711",
  "buyer": {
    "name": "Muster GmbH",
    "electronicAddress": "rechnung@muster-gmbh.example",
    "electronicAddressScheme": "EM",
    "address": {
      "street": "Musterstraße 1",
      "city": "Berlin",
      "postCode": "10115",
      "country": "DE"
    }
  },
  "lines": [
    {
      "name": "Softwarelizenz November",
      "quantity": 1,
      "unitCode": "C62",
      "netPrice": 490,
      "vatRate": 19
    },
    {
      "name": "Einrichtung",
      "quantity": 4,
      "unitCode": "HUR",
      "netPrice": 95,
      "vatRate": 19
    }
  ]
}
JSON;

$ch = curl_init('https://api.fakturnaut.com/v1/invoices');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('FAKTURNAUT_KEY'), // fkn_test_…
        'Content-Type: application/json',
        'Idempotency-Key: ' . bin2hex(random_bytes(16)),
    ],
    CURLOPT_POSTFIELDS => $invoice,
]);
$issued = json_decode(curl_exec($ch), true);
// sellerId: ID Ihres Verkäufers aus dem Portal
String invoice = """
    {
      "sellerId": "5b1d7f0e-3c2a-4e8b-9f61-2d4c8a7e9b03",
      "number": "RE-2026-0042",
      "issueDate": "2026-11-02",
      "dueDate": "2026-12-02",
      "buyerReference": "PO-4711",
      "buyer": {
        "name": "Muster GmbH",
        "electronicAddress": "rechnung@muster-gmbh.example",
        "electronicAddressScheme": "EM",
        "address": {
          "street": "Musterstraße 1",
          "city": "Berlin",
          "postCode": "10115",
          "country": "DE"
        }
      },
      "lines": [
        {
          "name": "Softwarelizenz November",
          "quantity": 1,
          "unitCode": "C62",
          "netPrice": 490,
          "vatRate": 19
        },
        {
          "name": "Einrichtung",
          "quantity": 4,
          "unitCode": "HUR",
          "netPrice": 95,
          "vatRate": 19
        }
      ]
    }
    """;

HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.fakturnaut.com/v1/invoices"))
    .header("Authorization", "Bearer " + System.getenv("FAKTURNAUT_KEY")) // fkn_test_…
    .header("Content-Type", "application/json")
    .header("Idempotency-Key", UUID.randomUUID().toString())
    .POST(HttpRequest.BodyPublishers.ofString(invoice))
    .build();
HttpResponse<String> issued = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());
// sellerId: ID Ihres Verkäufers aus dem Portal
var invoice = """
    {
      "sellerId": "5b1d7f0e-3c2a-4e8b-9f61-2d4c8a7e9b03",
      "number": "RE-2026-0042",
      "issueDate": "2026-11-02",
      "dueDate": "2026-12-02",
      "buyerReference": "PO-4711",
      "buyer": {
        "name": "Muster GmbH",
        "electronicAddress": "rechnung@muster-gmbh.example",
        "electronicAddressScheme": "EM",
        "address": {
          "street": "Musterstraße 1",
          "city": "Berlin",
          "postCode": "10115",
          "country": "DE"
        }
      },
      "lines": [
        {
          "name": "Softwarelizenz November",
          "quantity": 1,
          "unitCode": "C62",
          "netPrice": 490,
          "vatRate": 19
        },
        {
          "name": "Einrichtung",
          "quantity": 4,
          "unitCode": "HUR",
          "netPrice": 95,
          "vatRate": 19
        }
      ]
    }
    """;

using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.fakturnaut.com/v1/invoices")
{
    Content = new StringContent(invoice, Encoding.UTF8, "application/json"),
};
request.Headers.Authorization = new AuthenticationHeaderValue(
    "Bearer", Environment.GetEnvironmentVariable("FAKTURNAUT_KEY")); // fkn_test_…
// A new key per invoice; reuse it only when you retry this request.
request.Headers.Add("Idempotency-Key", Guid.NewGuid().ToString());
var issued = await http.SendAsync(request); // http: your shared HttpClient

Antwort, gekürzt

{
  "id": "0c9e6a52-71f4-4b8d-a3e2-6f5d9b1c2e47",
  "number": "RE-2026-0042",
  "typeCode": "380",
  "amountDue": 1035.3,
  "currency": "EUR",
  "findings": [],
  "documents": [
    {
      "format": "xrechnung-ubl",
      "href": "/v1/invoices/0c9e6a52-71f4-4b8d-a3e2-6f5d9b1c2e47/document?format=xrechnung-ubl"
    },
    {
      "format": "zugferd",
      "href": "/v1/invoices/0c9e6a52-71f4-4b8d-a3e2-6f5d9b1c2e47/document?format=zugferd"
    }
  ]
}
  • EN 16931
  • XRechnung UBL
  • XRechnung CII
  • ZUGFeRD
  • Peppol
  • KoSIT-Validator
  • OpenAPI
  • Server in Frankfurt
  • DE · RO

Für Entwicklung

Ein Aufruf, drei Schritte, keine Normtexte

  1. POST /v1/invoices

    Rechnung als JSON senden

    Verkäufer, Käufer, Positionen, Steuersätze. Mit Idempotency-Key, damit ein Retry nie doppelt ausstellt.

  2. findings: []

    Berechnet und geprüft

    Summen und Umsatzsteuer nach EN 16931. Jede Rechnung läuft durch den KoSIT-Validator; Abweichungen kommen als findings zurück.

  3. documents · webhooks

    Ausliefern

    XRechnung UBL/CII und ZUGFeRD abrufen, über Peppol zustellen, per Webhook über jeden Statuswechsel informiert werden.

Für Geschäftsführung und Produkt

Die E-Rechnungspflicht Ihrer Kunden lösen, ohne eigenes Normen-Know-how.

  • Rechtzeitig am Markt

    Ihre Kunden müssen ab 1. Januar 2027 oder 2028 E-Rechnungen ausstellen. Sie binden eine Schnittstelle an, statt ein Normprojekt zu starten.

  • Weniger Risiko

    Jede Rechnung wird vor der Auslieferung mit dem offiziellen KoSIT-Validator geprüft. Die Regeln der Norm stecken in Fakturnaut, nicht in Ihrem Code.

  • Planbare Kosten

    Ab 49 € im Monat für 250 Rechnungen, monatlich oder jährlich buchbar. Kein Projektbudget.

Selbst bauen oder einbinden?

AufgabeSelbst bauenMit Fakturnaut
EN 16931 und XRechnung verstehenIhr Team arbeitet sich in die Norm einSteckt in der API
Drei Formate erzeugenUBL, CII und ZUGFeRD-PDF bauen und pflegenEin JSON-Aufruf
Offizielle PrüfungKoSIT-Validator selbst integrieren und betreibenBei jeder Rechnung dabei
ZustellungE-Mail-Versand und Peppol-AnbindungPeppol inklusive in Growth, Scale und Enterprise
Mehrere MandantenEigenes Datenmodell für VerkäuferMehrere Verkäufer pro Konto
NormänderungenDauerhaft im eigenen BacklogNormative XRechnung-Releases: produktiv verfügbar innerhalb von 4 Wochen nach Veröffentlichung des finalen KoSIT-Bundles, in jedem Fall vor Gültigkeitsbeginn. Codelisten-Updates innerhalb von 2 Wochen. ZUGFeRD: innerhalb von 4 Wochen nach FeRD-Release. Parallelbetrieb 3.0/4.0 während der Übergangsfrist inklusive.
KostenEinmalig ca. 30–60 Entwicklertage für die Umstellung auf XRechnung 4.0 / EN 16931-1:2026, danach ca. 15–25 Tage pro Jahr für 4–6 Releases und Monitoring, plus Betrieb des Validators. Bei 800 €/Tag: ca. 24–48 T€ einmalig plus 13–21 T€ pro Jahr.ab 49 € im Monat

Für Entwicklung

Was die API mitbringt

  • OpenAPI-Spezifikation

    Clients generieren statt abtippen. Beispiele in curl, TypeScript, PHP, Java und C#.

  • Idempotente Aufrufe

    Derselbe Idempotency-Key stellt eine Rechnung nie zweimal aus.

  • Webhooks

    Ihr System erfährt Zustellung und Statuswechsel, ohne abzufragen.

  • Mehrere Verkäufer

    Jeder Ihrer Kunden ist ein Verkäufer mit eigener sellerId, alles in einem Konto.

  • Peppol

    Über Peppol in den Tarifen Growth, Scale und Enterprise. Versand per E-Mail: in Vorbereitung. Deutschland und Rumänien werden heute unterstützt.

  • Betrieb in Frankfurt

    Server in der EU, öffentliche Statusseite.

  • Gutschriften (Self-Billing): in Vorbereitung

    Zugang auf Anfrage: Schreiben Sie uns.

Lieber mit SDK? Es gibt SDKs für TypeScript, PHP, Java und C#. Anleitung: XRechnung per API erzeugen

Preise nach ausgestellten Rechnungen

30 Tage kostenlos testen: 20 Testrechnungen, keine Zahlungsdaten, endet automatisch.

StarterZum Einstieg

49 €pro Monat, netto

Für den Einstieg.

  • 250 Rechnungen im Monat
  • rechnerisch 0,20 € je Rechnung
  • XRechnung UBL/CII und ZUGFeRD
  • Prüfen unbegrenzt
  • Peppol nur im Test
  • Verkäufer in Deutschland

Growth

249 €pro Monat, netto

Für wachsende Kundenzahlen.

  • 2.500 Rechnungen im Monat
  • rechnerisch 0,10 € je Rechnung
  • XRechnung UBL/CII und ZUGFeRD
  • Prüfen unbegrenzt
  • Zustellung über Peppol

Scale

749 €pro Monat, netto

Für große Rechnungsvolumen.

  • 15.000 Rechnungen im Monat
  • rechnerisch 0,05 € je Rechnung
  • XRechnung UBL/CII und ZUGFeRD
  • Prüfen unbegrenzt
  • Zustellung über Peppol
  • Ziel: 99,9 % Verfügbarkeit

Enterprise

ab 1.500 €pro Monat, netto

Nach Vereinbarung.

  • Mehr als 15.000 Rechnungen
  • Bezahlung auf Rechnung

Der Preis richtet sich nach ausgestellten Rechnungen und aktiven Verkäufern pro Monat. Prüfen ist in jedem Tarif unbegrenzt. Alle Details zu den Preisen

Alle Preise netto in Euro zuzüglich der gesetzlichen Umsatzsteuer. Bezahlte Tarife gibt es monatlich oder jährlich, bezahlt per Karte oder SEPA-Lastschrift über Stripe; Enterprise nach Vereinbarung auf Rechnung. Monatliche Laufzeiten sind monatlich kündbar, jährliche zu ihrem Ende.

Verbindlich sind die Preisliste und die AGB.

Sie schreiben nur Ihre eigenen Rechnungen? Die App gibt es ab 0 €.

GoBD: was Fakturnaut abdeckt

Was Fakturnaut abdeckt

  • Gespeicherte Rechnungen sind unveränderbar und mit einer Prüfsumme gesichert.
  • Korrekturen nur über Rechnungskorrekturen.

Für Aufbewahrung und Verfahrensdokumentation bleiben Sie als Unternehmen verantwortlich. Keine Steuer- oder Rechtsberatung.

Quellen: § 147 AO · § 14b UStG. Keine Steuer- oder Rechtsberatung.

Häufige Fragen

Gibt es eine Sandbox?

Ja. Der Testzugang läuft 30 Tage mit bis zu 20 Testrechnungen und braucht keine Zahlungsdaten. Die Rechnungen tragen den Vermerk „TESTRECHNUNG“; Peppol wird im Test simuliert.

Quellen: Sandbox

Muss ich meine Software umbauen?

Nein. Ihre Software schickt die Rechnungsdaten als JSON an unsere API. Format, Berechnung und Prüfung übernehmen wir, auf Wunsch auch den Versand.

Quellen: Schnellstart

Was passiert bei einem doppelten Aufruf?

Mit demselben Idempotency-Key stellt die API keine zweite Rechnung aus.

Wie bezahle ich?

Per Karte oder SEPA-Lastschrift über Stripe; Ihr Tarif ist sofort aktiv. Enterprise-Kunden zahlen nach Vereinbarung auf Rechnung.

Quellen: AGB

Welche Formate erzeugt die API?

XRechnung 3.0 in UBL und CII, ZUGFeRD/Factur-X im Profil EN 16931 und für Rumänien RO e-Factura. Jede erzeugte Datei prüfen wir mit dem Prüftool und den Regeln der KoSIT.

Quellen: XRechnung (KoSIT) · ZUGFeRD (FeRD)

Brauche ich Peppol?

Nicht zwingend. Das Gesetz schreibt für E-Rechnungen zwischen Unternehmen keinen Übertragungsweg vor; auch die E-Mail ist zulässig. Viele öffentliche Auftraggeber nehmen Rechnungen über Peppol entgegen. Peppol ist in den Tarifen Growth, Scale und Enterprise enthalten.

Quellen: Fragen und Antworten zur E-Rechnung (BMF) · E-Rechnung an den Bund (e-rechnung-bund.de)

Wo stehen die Server?

In Frankfurt am Main in der EU. Wie wir Daten verarbeiten, beschreiben die Datenschutzerklärung und der Vertrag zur Auftragsverarbeitung.

Quellen: Datenschutzerklärung · Auftragsverarbeitung (AVV)

Was passiert ab 2027 und 2028?

Seit dem 1. Januar 2025 müssen Unternehmen in Deutschland E-Rechnungen empfangen können. Ab dem 1. Januar 2027 stellen Unternehmen mit mehr als 800.000 € Vorjahresumsatz Rechnungen an andere inländische Unternehmen als E-Rechnung aus, ab dem 1. Januar 2028 alle übrigen.

Quellen: § 27 Abs. 38 UStG · BMF-Schreiben vom 15. Oktober 2025 · Fragen und Antworten zur E-Rechnung (BMF)

Unterstützen Sie Gutschriften?

Gutschriften im Sinne des Umsatzsteuergesetzes (Self-Billing, Rechnungstyp 389) bereiten wir vor; Zugang gibt es auf Anfrage. Rechnungskorrekturen und Stornorechnungen mit Bezug auf die ursprüngliche Rechnung stellen Sie schon heute über die API aus.

Quellen: § 14 UStG

Wie schnell ist die Integration?

Die erste Testrechnung senden Sie in wenigen Minuten. Wie lange die Anbindung Ihrer Software dauert, hängt davon ab, wie Ihre Rechnungsdaten vorliegen; die Felder der API folgen der Norm EN 16931.

Quellen: Schnellstart

Wer haftet für die Inhalte der Rechnung?

Für Inhalt und Richtigkeit der Rechnung bleibt verantwortlich, wer sie ausstellt. Wir erzeugen die Datei, prüfen sie nach den technischen Regeln und stellen sie zu. Die Einzelheiten regeln unsere AGB.

Quellen: AGB · § 14 UStG

Die Antworten ersetzen keine Steuer- oder Rechtsberatung.

Die erste geprüfte XRechnung aus Ihrem Code, heute.

30 Tage, 20 Testrechnungen, keine Zahlungsdaten.

30 Tage kostenlos testen