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 ProduktSelbst 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 HttpClientAntwort, 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
POST /v1/invoicesRechnung als JSON senden
Verkäufer, Käufer, Positionen, Steuersätze. Mit Idempotency-Key, damit ein Retry nie doppelt ausstellt.
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.
documents · webhooksAusliefern
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?
| Aufgabe | Selbst bauen | Mit Fakturnaut |
|---|---|---|
| EN 16931 und XRechnung verstehen | Ihr Team arbeitet sich in die Norm ein | Steckt in der API |
| Drei Formate erzeugen | UBL, CII und ZUGFeRD-PDF bauen und pflegen | Ein JSON-Aufruf |
| Offizielle Prüfung | KoSIT-Validator selbst integrieren und betreiben | Bei jeder Rechnung dabei |
| Zustellung | E-Mail-Versand und Peppol-Anbindung | Peppol inklusive in Growth, Scale und Enterprise |
| Mehrere Mandanten | Eigenes Datenmodell für Verkäufer | Mehrere Verkäufer pro Konto |
| Normänderungen | Dauerhaft im eigenen Backlog | Normative 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. |
| Kosten | Einmalig 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
Die Antworten ersetzen keine Steuer- oder Rechtsberatung.
Die erste geprüfte XRechnung aus Ihrem Code, heute.
30 Tage, 20 Testrechnungen, keine Zahlungsdaten.