E-Rechnung für Handwerk & Bau: XRechnung & ZUGFeRD aus Ihrer Branchensoftware
Für SHK, Elektro, Dach, Bauhandwerk und Bauunternehmen. Diese Seite zeigt, wie Abschläge, Schlussrechnungen, § 13b, Einbehalte und Leistungsverzeichnisse in eine E-Rechnung nach EN 16931 passen, was dabei in der Praxis schiefgeht und wie es richtig geht.
Kurz gesagt: Die vier verbreiteten Branchenlösungen, die wir geprüft haben (kwp-bnWin.net, Sander & Doll, M-SOFT, Powerbird), erzeugen bereits selbst E-Rechnungen, bei Powerbird allerdings ohne öffentliche Formatangabe des Herstellers. Das Risiko im Bau liegt deshalb weniger im Format als in den Bau-Sonderfällen: Schlussrechnung mit bereits gezahlten Abschlägen (BT-113), Steuerschuldnerschaft nach § 13b, Einbehalte ohne Normfeld, Leitweg-ID bei öffentlichen Auftraggebern. Prüfen Sie jede Rechnungsart einmal gegen einen unabhängigen Validator, bevor die Pflicht greift. Kürzel wie BR-DE-26, BT-10 oder BG-3 stammen aus der Norm EN 16931. Sie müssen sie nicht kennen; wichtig ist der erklärende Satz daneben.
Welche Rechnungen im Bau anders sind
Ein Bauvertrag erzeugt selten nur eine Rechnung. Typisch ist die Folge aus mehreren Abschlagsrechnungen nach Leistungsstand und einer Schlussrechnung über das gesamte Werk. EN 16931, die europäische Norm hinter XRechnung (reine XML-Datei, das Pflichtformat für Behörden) und ZUGFeRD (ein normales PDF mit denselben Rechnungsdaten als eingebettetem XML), bildet das mit zwei Rechnungsarten ab (Rechnungsart heißt dort Invoice Type Code, BT-3):
- Abschlagsrechnung: Code
326. Mitinvoice_type_label: "Abschlagsrechnung"steht das Wort auch auf der Sicht-PDF; in der XML zählt allein der Code. - Schlussrechnung: Code
380, also eine normale Rechnung über den vollen Leistungsumfang. Bereits gezahlte Abschläge gehören brutto intotals.prepaid_amount(BT-113, „bereits gezahlter Betrag“). Die Regel BR-CO-16 verlangt: Zahlbetrag = Brutto minus bereits gezahlt (plus Rundung). Stimmt das nicht auf den Cent, lehnt die API (Schnittstelle, über die Programme Daten austauschen) mit HTTP 422 ab und nennt kanonischen und berechneten Wert. - Vorbeleg:
preceding_invoices(BG-3) erlaubt im Profil XRechnung genau einen Eintrag. Bei drei Abschlägen referenzieren Sie den letzten und listen alle mit Nummer, Datum, Netto und Steuer innote(BT-22) auf. Das erfüllt zugleich § 14 Abs. 5 UStG, der in der Endrechnung den Abzug der vereinnahmten Teilentgelte und der darauf entfallenden Steuer verlangt. - Rechnungskorrektur: Code
384mit genau einem Vorbeleg. Fehlt er, meldet die XRechnung-Prüfung die Warnung BR-DE-26. Storno läuft als Code381.
Steuerfälle, die im Bau ständig vorkommen
§ 13b UStG, Bauleistungen an Bauunternehmer: Arbeiten Sie als Nachunternehmer
für einen Betrieb, der selbst nachhaltig Bauleistungen erbringt, schuldet dieser die Umsatzsteuer.
In der E-Rechnung ist das die Steuerkategorie AE mit 0 % und
exemption_reason: "Steuerschuldnerschaft des Leistungsempfängers". Die Norm verlangt
dabei eine Steuerkennung des Verkäufers und eine Kennung des Käufers, in der Praxis dessen
USt-IdNr.; fehlt sie, scheitert die Prüfung.
Sicherheitseinbehalt: Für den vertraglichen Einbehalt von meist 5 % gibt es in
EN 16931 kein Feld. Der Bruttobetrag bleibt vollständig, der Einbehalt steht als
Zahlungsbedingung in note. Wer ihn als Nachlass abzieht, mindert die Bemessungsgrundlage
der Umsatzsteuer, und das ist fachlich falsch.
Bauabzugsteuer (§ 48 EStG): Unternehmerische Auftraggeber behalten grundsätzlich
15 % ein, wenn keine Freistellungsbescheinigung vorliegt. Ausnahmen bestehen u. a. bei
Bauleistungen unterhalb der gesetzlichen Freigrenze (5.000 € bzw. 15.000 € pro Kalenderjahr) und
bei Vermietern mit nicht mehr als zwei Wohnungen. Ob eine Ausnahme greift, prüft Ihr
Steuerberater. Auch dafür gibt es kein Rechnungsfeld; ein Hinweis
auf die gültige Freistellungsbescheinigung in note erspart Rückfragen.
Kleinunternehmer (§ 19 UStG): Die ganze Rechnung ohne Umsatzsteuer, in der API
als Kategorie O.
Privatkunden und § 35a EStG: Gegenüber Privatleuten besteht keine
E-Rechnungspflicht. Wer Hausverwaltungen oder Eigentümer trotzdem mit ZUGFeRD beliefert, weist
Arbeits-, Maschinen- und Fahrtkosten getrennt vom Material aus und nennt den Lohnanteil in
note, damit der Kunde die Steuerermäßigung für Handwerkerleistungen belegen kann.
Öffentliche Auftraggeber: Leitweg-ID schon heute Pflicht
Kommunen, Länder und Bund verlangen bereits jetzt die XRechnung. Jede Behörde nennt eine
Leitweg-ID, eine Adresse aus Grobadressierung, optionaler Feinadressierung und
Prüfziffer. Sie gehört in buyer_reference (BT-10). Ein Schulbau der Stadt und der
Bauhof derselben Stadt haben oft verschiedene Leitweg-IDs; die falsche ID führt zur Rückweisung
im Rechnungsportal, obwohl die Datei formal gültig ist. Die Einreichung über das Portal des
Auftraggebers bleibt Ihr Schritt; die Fristen für den privaten Bereich stehen im
Ratgeber zu den Fristen.
Leistungsverzeichnis und Einheiten
Ausschreibungen kommen als GAEB-Datei (Datenaustausch-Standard im Bauwesen). Jede Position trägt
eine Ordnungszahl (OZ) wie 02.01.0030. Übernehmen Sie die OZ in
line_id (BT-126), dann findet der Auftraggeber jede Rechnungsposition in seinem
Leistungsverzeichnis wieder. Die Einheiten müssen als UN/ECE-Code kommen; die Kürzel aus dem LV
lehnt die Prüfung (BR-CL-23) ab.
| Einheit im LV | Code | Typische Position |
|---|---|---|
| m² | MTK | Estrich, Fliesen, Dachfläche |
| m³ | MTQ | Beton, Aushub, Bauholz |
| m, lfm | MTR | Rohrleitung, Kabel, Sockelleiste |
| St, Stk | C62 | Heizkörper, Steckdose, Fenster |
| h, Std | HUR | Regie- und Stundenlohnarbeiten |
| psch | LS | Baustelleneinrichtung |
| kg / t | KGM / TNE | Bewehrungsstahl, Schüttgut |
Regie- und Stundenlohnarbeiten rechnen Sie mit HUR ab und verweisen
in note auf die gegengezeichneten Stundenlohnzettel. Skonto hat in EN 16931 kein
eigenes Pflichtfeld; es steht als Zahlungsbedingungstext in der Rechnung. Die XRechnung sieht dafür
zusätzlich ein maschinenlesbares Muster der Form #SKONTO# vor.
In der API tragen Sie Skonto unter payment_terms.cash_discounts mit Tagen und Prozent ein;
das Muster schreibt die API selbst.
Ihre Software
kwp-bnWin.net (KWP Informationssysteme, Ergolding bei Landshut) richtet sich an SHK, Elektro/PV, Maler und Holzbau. XRechnung gibt es laut KWP ab Version 7.6 N1 im Softwarepflegevertrag; Voraussetzung sind das Modul Vorgangsarchivierung und SQL-Datenhaltung. Seit 8.0 N4 (Sommer 2025) gibt es die Versandart „ZUGFeRD Profil XRechnung per E-Mail“, eine ZUGFeRD-PDF mit XRechnung-XML 3.0.2. Eingangsrechnungen prüft die Softwareergänzung „ZUGFeRD eRechnungskontrolle“ gegen die Bestellung.
Sander & Doll (Sander & Doll AG) nennt 14 Gewerke von Dachdecker bis Zimmerer. Die E-Rechnung ist laut Hersteller im Basis-Modul „Auftragsabwicklung & Kundenkorrespondenz“ enthalten; pro Rechnung wählen Sie ZUGFeRD oder XRechnung. Empfangene E-Rechnungen übernimmt das Modul „Einkauf“ per Drag & Drop. Eine aktuelle XRechnung-Version nennt der Hersteller öffentlich nicht (2020 war von ZUGFeRD 2.0 die Rede).
M-SOFT (M-SOFT Organisationsberatung, Dissen, Teil der OneQrew-Gruppe) bietet PASST.prime und PASST+ sowie Business five. Das Hilfeportal dokumentiert ungewöhnlich viele E-Rechnungs-Details: mehrere Leitweg-IDs je Kunde, Abrechnungszeitraum, Ausweis bereits gestellter Abschläge und ein Ablaufdatum für die § 13b-Bescheinigung.
Powerbird (Hausmann & Wynen, Monheim am Rhein) ist auf Elektro, SHK und Solarteure ausgerichtet und läuft unter Windows oder in der HWCloud. Der Hersteller meldet für Version 27.9.01 Erweiterungen beim E-Rechnungs-Import und -Export; welche Formate und Profile genau, steht nicht auf der Website.
Drei Wege, wenn die eingebaute Funktion nicht reicht
- Weg A, Druck-PDF anreichern (Tage): Ihre Software druckt die Schlussrechnung
wie gewohnt mit Aufmaß-Anlage. Ein Skript schickt dieses PDF als
invoice_pdf_base64zusammen mit Kopf- und Positionsdaten an die API. Zurück kommt eine ZUGFeRD-PDF, die aussieht wie bisher. Für die Übereinstimmung von PDF und Daten sind in diesem Weg Sie verantwortlich. - Weg B, Export zu JSON (Tage bis Wochen): Rechnungsdaten kommen aus einem CSV-, XML- oder Datenbank-Export und gehen als JSON (ein Textformat für Daten) an die API; die Sicht-PDF rendert unser Server aus derselben XML. Sinnvoll für ARGE-Abrechnungen oder Rechnungen aus einem Zweitsystem.
- Weg C, direkte Integration (Wochen): nur, wenn Ihre Software Skripte oder Schnittstellen dafür öffnet. Dazu haben wir bei den vier Systemen oben keine öffentliche Dokumentation gefunden.
Für die Empfangsseite reicht oft der kostenlose Viewer: er zeigt eingehende XRechnungen lesbar an und prüft sie, ohne Konto.
Beispiel: Schlussrechnung mit zwei bezahlten Abschlägen
Ein Rohbauer rechnet ein Mehrfamilienhaus ab. Zwei Abschläge über 32.130,00 € brutto sind
bezahlt. Die Schlussrechnung enthält die volle Leistung, zieht die Abschläge über
prepaid_amount ab und nennt Einbehalt und Freistellung als Text.
Vorher ziehen viele Programme die bezahlten Abschläge als Minuszeile ab, und die Schlussrechnung weist zu wenig Umsatzsteuer aus. Nachher steht die volle Leistung mit voller Steuer in der Rechnung, und nur der Zahlbetrag sinkt um das, was schon bezahlt ist.
Der folgende Kasten ist für Ihre IT oder Ihr Systemhaus gedacht. Als Inhaber reicht es zu wissen: So sieht ein Beispiel aus, das die Prüfung besteht.
Technisches Beispiel anzeigen (JSON, für Ihre IT)
# Schlussrechnung als XRechnung + ZUGFeRD erzeugen: curl -X POST https://api.einfache-rechnungen.de/v1/invoices/generate \ -H "X-API-Key: erk_ihr_key" \ -H "Content-Type: application/json" \ -d @schlussrechnung.json
{
"invoice": {
"invoice_number": "SR-2026-0419",
"invoice_type_code": 380,
"issue_date": "2026-09-18",
"delivery_date": "2026-09-04",
"billing_period_start": "2026-03-16",
"billing_period_end": "2026-09-04",
"due_date": "2026-10-18",
"currency": "EUR",
"buyer_reference": "BV Lindenhof Haus B",
"purchase_order_reference": "Bauvertrag vom 12.03.2026",
"preceding_invoices": [
{ "invoice_number": "AR-2026-0388", "issue_date": "2026-07-31" }
],
"note": "Abzüglich bezahlter Abschläge: AR-2026-0311 vom 30.06.2026 (12.000,00 EUR netto, 2.280,00 EUR USt), AR-2026-0388 vom 31.07.2026 (15.000,00 EUR netto, 2.850,00 EUR USt). Vertraglicher Sicherheitseinbehalt 5 % (2.199,41 EUR), nicht vom Zahlbetrag abgezogen. Freistellungsbescheinigung nach § 48b EStG liegt vor.",
"seller": {
"name": "Rohbau Beispiel GmbH",
"address": { "street": "Werkstraße 7", "postal_code": "49074", "city": "Osnabrück", "country_code": "DE" },
"vat_id": "DE811234567",
"electronic_address": "rechnung@rohbau-beispiel.de",
"electronic_address_scheme": "EM",
"contact": { "name": "K. Brandt", "phone": "+49 541 998877", "email": "rechnung@rohbau-beispiel.de" }
},
"buyer": {
"name": "Wohnbau Lindenhof GmbH",
"address": { "street": "Am Markt 3", "postal_code": "48143", "city": "Münster", "country_code": "DE" },
"electronic_address": "eingangsrechnung@wohnbau-lindenhof.de",
"electronic_address_scheme": "EM"
},
"payment_means": { "code": "58", "iban": "DE02120300000000202051", "account_name": "Rohbau Beispiel GmbH" },
"lines": [
{ "line_id": "01.0010", "name": "Baustelleneinrichtung", "quantity": "1", "unit_code": "LS",
"unit_price_net": "4200.00", "line_net_amount": "4200.00", "tax_category": "S", "tax_rate": "19" },
{ "line_id": "02.0020", "name": "Mauerwerk KS 24 cm", "quantity": "310.5", "unit_code": "MTK",
"unit_price_net": "68.40", "line_net_amount": "21238.20", "tax_category": "S", "tax_rate": "19" },
{ "line_id": "02.0030", "name": "Stahlbetondecke C25/30", "quantity": "42.75", "unit_code": "MTQ",
"unit_price_net": "245.00", "line_net_amount": "10473.75", "tax_category": "S", "tax_rate": "19" },
{ "line_id": "03.0010", "name": "Regiestunden Facharbeiter", "quantity": "18", "unit_code": "HUR",
"unit_price_net": "58.50", "line_net_amount": "1053.00", "tax_category": "S", "tax_rate": "19" }
],
"tax_breakdown": [
{ "category": "S", "rate": "19", "taxable_amount": "36964.95", "tax_amount": "7023.34" }
],
"totals": { "line_net_amount": "36964.95", "net_amount": "36964.95", "tax_amount": "7023.34",
"gross_amount": "43988.29", "prepaid_amount": "32130.00", "payable_amount": "11858.29" }
},
"options": { "profile": "XRECHNUNG", "syntax": "CII" }
}
Die Rechnung weist die volle Steuer von 7.023,34 € aus, zahlbar sind 11.858,29 €. Die in den Abschlägen bereits berechnete Steuer (5.130,00 €) steht im Text, nicht als Abzug in der Steuerberechnung.
Stolpersteine in Handwerk und Bau
- Abschläge als negative Positionen: Viele Vorlagen ziehen Abschläge als
Minuszeile ab. Dann sinken Netto und Steuer der Schlussrechnung, und die Rechnung weist zu wenig
Umsatzsteuer aus. So lösen Sie es: volle Leistung in
lines, Abschläge brutto inprepaid_amount. - Mehrere Vorbelege: Drei Einträge in
preceding_invoicesführen im Profil XRechnung zur Ablehnung. Ein Vorbeleg, die übrigen innote. - § 13b ohne USt-IdNr. des Auftraggebers: Die Kategorie
AEbraucht eine Kennung des Käufers, sonst scheitert die Prüfung mit HTTP 422. Die Nummer gehört in den Kundenstamm, bevor die erste Nachunternehmerrechnung rausgeht. - Gemischte Steuersätze: Liefern Sie eine Photovoltaikanlage zum Nullsteuersatz
(Kategorie
Z) und erweitern zugleich die Hausinstallation mit 19 %, braucht jede Kategorie eine eigene Zeile intax_breakdown. Fehlt eine, lehnt die Prüfung die Rechnung ab. Die Zuordnung stimmen Sie mit Ihrem Steuerberater ab. - Rundung im Aufmaß: 310,5 m² mal 68,40 € müssen exakt 21.238,20 € ergeben. Rechnet die Software mit mehr Nachkommastellen und rundet erst die Summe, weicht der Positionsbetrag ab. Runden Sie jede Position auf zwei Stellen.
Häufige Fragen
Darf ich in der E-Rechnung den Sicherheitseinbehalt vom Zahlbetrag abziehen?
Wie viele Abschlagsrechnungen kann ich in der Schlussrechnung referenzieren?
Brauchen Privatkunden eine E-Rechnung?
Meine Branchensoftware kann schon XRechnung. Wozu brauche ich dann eine API?
Wer haftet, wenn die E-Rechnung inhaltlich falsch ist?
kwp-bnWin.net, Sander & Doll, PASST.prime, PASST+, Business five und Powerbird sind Produkte ihrer jeweiligen Hersteller. einfache-rechnungen.de ist ein unabhängiges Angebot und steht in keiner Verbindung zu diesen Herstellern.
Kosten: Die Prüfung und Erzeugung kostet 0 € für 10 Rechnungen im Monat, danach ab 7,99 € netto. Eine Anbindung durch Coreventa ist ein Festpreisprojekt; den Rahmen klären wir im kostenlosen Erstgespräch. Ihre Rechnungs- und Kundendaten bleiben dabei auf deutschen Servern (Hetzner).
Bau-Rechnungen als E-Rechnung prüfen und erzeugen
Kostenlos testen: 10 Rechnungen im Monat, keine Kreditkarte. Für die Anbindung Ihrer Branchensoftware sprechen Sie mit uns.
Kostenlos registrieren Anbindung besprechenQuellen (abgerufen am 25.09.2026): kwpsoftware.de/xrechnung; KWP: Update 8.0 N4; Sander & Doll: E-Rechnung Handwerk; M-SOFT Hilfe: Erweiterungen für XRechnung und ZUGFeRD; M-SOFT Hilfe: kumulierte Rechnungsstellung; powerbird.de (Update 27.9.01); Powerbird Funktionsübersicht; § 13b, § 14 Abs. 5, § 19 UStG; § 35a, § 48 EStG; Norm EN 16931; KoSIT (Standard XRechnung).