E-Rechnungen erstellen: XRechnung und ZUGFeRD
Rechnungsdaten eingeben, gültige E-Rechnung erhalten. Jede Datei wird mit den offiziellen Prüfregeln getestet. Kostenlos bis 25 Rechnungen im Monat, ohne Anmeldung.
Online-Formular →
Für Selbstständige und kleine Unternehmen: Formular ausfüllen, PDF oder XML herunterladen. Ohne Programmierung.Für Entwickler: API →
Für Shops und eigene Software: Rechnungsdaten als JSON schicken, Datei zurückbekommen.Vorher ansehen: Beispiel-Rechnung als ZUGFeRD-PDF · dieselbe Rechnung als XRechnung
Muss ich E-Rechnungen ausstellen?
Seit 2025 müssen alle Unternehmen E-Rechnungen empfangen können; dafür genügt ein E-Mail-Postfach. Ausstellen müssen Sie sie für Rechnungen an andere Unternehmen spätestens ab 2027 oder 2028. Kleinbeträge bis 250 € und Kleinunternehmer sind ausgenommen. Verkaufen Sie nur an Privatkunden, müssen Sie keine E-Rechnungen ausstellen.
Ratgeber
- E-Rechnungspflicht 2025 bis 2028: Wer muss was ab wann?
- XRechnung oder ZUGFeRD: Welches Format passt?
Warum Tallyworks
Offiziell geprüft
Jede Version wird mit denselben Regeln getestet, mit denen die Rechnungsportale der Verwaltung Rechnungen annehmen oder ablehnen.Klare Fehlermeldungen
Ungültige IBAN, fehlendes Leistungsdatum, fehlende USt-IdNr.: Sie sehen genau, welche Angabe fehlt, bevor eine fehlerhafte Rechnung entsteht.Auf den Cent genau
Summen und Umsatzsteuer werden mit kaufmännischer Rundung berechnet.Deutsche Steuerfälle
19 % und 7 % auf einer Rechnung, Kleinunternehmer (§ 19 UStG), Reverse Charge in der EU, Korrekturpositionen mit negativer Menge.Preise
Kostenlos
Starter
Pro
Die kostenlose Stufe bleibt auch nach dem Start der bezahlten Tarife. Sie brauchen schon jetzt mehr? Schreiben Sie an tallyworks.ops@gmail.com.
Für Entwickler: die API
Entwickler-Dokumentation (englisch): Codebeispiele in JavaScript, PHP und Python, OpenAPI-Datei, alle Antworten und Fehlercodes.
Ohne Anmeldung und ohne Schlüssel ausprobieren:
curl https://xrechnung.tallyworks.dev/v1/xrechnung \
-H "content-type: application/json" \
-o RE-2026-0001.xml \
-d '{
"number": "RE-2026-0001",
"issueDate": "2026-10-11",
"dueDate": "2026-10-25",
"deliveryDate": "2026-10-09",
"buyerReference": "04011000-12345-34",
"seller": {
"name": "Muster Webdesign GmbH",
"electronicAddress": "rechnung@muster.example",
"address": { "street": "Hauptstraße 1", "city": "Berlin", "postalCode": "10115", "country": "DE" },
"vatId": "DE123456789",
"contact": { "name": "Erika Muster", "phone": "+49 30 1234567", "email": "erika@muster.example" }
},
"buyer": {
"name": "Stadtverwaltung Beispielstadt",
"electronicAddress": "eingang@beispielstadt.example",
"address": { "city": "Beispielstadt", "postalCode": "12345", "country": "DE" }
},
"payment": { "iban": "DE02120300000000202051" },
"lines": [
{ "name": "Webdesign", "quantity": "12.5", "unit": "HUR", "unitPrice": "95.00", "vatRate": 19 },
{ "name": "Fachbuch", "quantity": 3, "unitPrice": "24.33", "vatRate": 7 }
]
}'
Zurück kommt die XML-Datei. Für ein ZUGFeRD-PDF schicken Sie dasselbe JSON an /v1/zugferd. Fehlt etwas,
bekommen Sie alle Probleme auf einmal, jeweils mit dem Feld, das zu korrigieren ist (Fehlermeldungen der API sind englisch):
HTTP/1.1 422
{
"error": "invalid invoice",
"details": [
{ "path": "deliveryDate", "message": "is required unless period is given (date of supply, § 14 UStG)" },
{ "path": "payment.iban", "message": "is not a valid IBAN" }
]
}
Felder der Anfrage
| Feld | Hinweis |
|---|---|
number | Rechnungsnummer |
issueDate, dueDate | JJJJ-MM-TT; dueDate optional |
deliveryDate oder period {start, end} | Liefer- oder Leistungsdatum bzw. -zeitraum (Pflicht nach § 14 UStG) |
buyerReference | Leitweg-ID bei öffentlichen Auftraggebern, sonst z. B. die Bestellnummer |
currency | ISO 4217, Standard EUR |
seller | name, electronicAddress (E-Mail), address, contact {name, phone, email}; dazu vatId (USt-IdNr.) oder taxNumber (Steuernummer) mit identifier / registrationNumber |
buyer | name, electronicAddress, address; vatId bei Reverse Charge |
payment | iban (wird geprüft), optional bic, accountName, terms, reference |
lines[] | name, quantity, unitPrice, vatRate, optional unit (UN/ECE-Code, Standard C62 = Stück), description, vatCategory; bis zu 250 Positionen |
vatCategory | S Regelsteuersatz (Standard bei vatRate > 0), Z Nullsatz, E steuerbefreit (z. B. § 19 UStG), AE Reverse Charge |
vatExemptionReason | Pflicht bei Kategorie E, z. B. "Gemäß § 19 UStG wird keine Umsatzsteuer berechnet." |
note | Freitext auf der Rechnung |
Beträge und Mengen können Zahlen oder Dezimal-Strings sein; Strings vermeiden Rundungsüberraschungen auf Ihrer Seite.
Jede Antwort enthält die Header x-plan, x-usage-limit und x-usage-remaining.
Formate
POST /v1/xrechnung: XRechnung 3.0 im UBL-Format, wie es die Rechnungsportale der Verwaltung erwarten.POST /v1/zugferd: ZUGFeRD 2 / Factur-X, Profil EN 16931. Eine PDF/A-3-Rechnung auf Deutsch mit eingebetteter CII-XML, geprüft mit veraPDF und dem Mustang-Validator.- Zahlung per SEPA-Überweisung.
Tallyworks erzeugt formal korrekte E-Rechnungen und ist keine Steuerberatung: Für den Inhalt Ihrer Rechnungen, etwa die richtige Umsatzsteuer, bleiben Sie verantwortlich.