einfache- rechnungen.de
E-Rechnung für · Handwerk & Bau

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. Mit invoice_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 in totals.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 in note (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 384 mit genau einem Vorbeleg. Fehlt er, meldet die XRechnung-Prüfung die Warnung BR-DE-26. Storno läuft als Code 381.

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 LVCodeTypische Position
m²MTKEstrich, Fliesen, Dachfläche
m³MTQBeton, Aushub, Bauholz
m, lfmMTRRohrleitung, Kabel, Sockelleiste
St, StkC62Heizkörper, Steckdose, Fenster
h, StdHURRegie- und Stundenlohnarbeiten
pschLSBaustelleneinrichtung
kg / tKGM / TNEBewehrungsstahl, 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#TAGE=14#PROZENT=2.00# 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

  1. Weg A, Druck-PDF anreichern (Tage): Ihre Software druckt die Schlussrechnung wie gewohnt mit Aufmaß-Anlage. Ein Skript schickt dieses PDF als invoice_pdf_base64 zusammen 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.
  2. 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.
  3. 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 in prepaid_amount.
  • Mehrere Vorbelege: Drei Einträge in preceding_invoices führen im Profil XRechnung zur Ablehnung. Ein Vorbeleg, die übrigen in note.
  • § 13b ohne USt-IdNr. des Auftraggebers: Die Kategorie AE braucht 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 in tax_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?
Nein. EN 16931 kennt keinen Sicherheitseinbehalt. Der Rechnungsbetrag bleibt vollständig, der Einbehalt steht als Zahlungsbedingung im Bemerkungsfeld (note). Ziehen Sie ihn als Nachlass ab, sinkt die Bemessungsgrundlage der Umsatzsteuer, und das ist fachlich falsch.
Wie viele Abschlagsrechnungen kann ich in der Schlussrechnung referenzieren?
Im Profil XRechnung genau einen Vorbeleg in preceding_invoices. Die Summe aller bezahlten Abschläge steht in totals.prepaid_amount (BT-113), die einzelnen Abschläge mit Nummer, Datum, Netto und Steuer listen Sie in note auf.
Brauchen Privatkunden eine E-Rechnung?
Nein, die Pflicht gilt zwischen Unternehmen im Inland. Für Privatkunden dürfen Sie weiter PDF oder Papier nutzen. Wer trotzdem ZUGFeRD schickt, weist Arbeits- und Materialkosten für § 35a EStG getrennt aus.
Meine Branchensoftware kann schon XRechnung. Wozu brauche ich dann eine API?
Für drei Dinge: eine unabhängige Prüfung der erzeugten Dateien vor dem Versand, das Lesen eingehender E-Rechnungen im kostenlosen Viewer und Rechnungen, die Ihre Software nicht sauber abbildet oder die außerhalb davon entstehen. Wenn Ihre Software alles abdeckt und die Prüfung besteht, brauchen Sie uns nicht.
Wer haftet, wenn die E-Rechnung inhaltlich falsch ist?
Für den Inhalt Ihrer Rechnung bleiben Sie verantwortlich, wie bei jeder Papierrechnung. Die Prüfung stellt sicher, dass die Datei den Formatregeln der EN 16931 entspricht, nicht dass Preise oder Steuersätze stimmen.

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 besprechen

Stand: September 2026 · Angaben zu den Branchensystemen nach öffentlichen Herstellerquellen, ohne Gewähr · keine Rechts- oder Steuerberatung.

Quellen (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).