E-Rechnung für Spedition & Logistik: XRechnung & ZUGFeRD aus Ihrer Branchensoftware
Für Speditionen, Transportunternehmen, Kontraktlogistiker und Kurierdienste. Eine Transportrechnung vereint oft Kilometer, Tonnen, Wartezeit, Maut, Dieselzuschlag und eine steuerfreie Auslandsfahrt auf einem Beleg. Diese Seite zeigt, wie jede dieser Angaben in eine E-Rechnung nach EN 16931 passt und wo die Prüfung in der Praxis scheitert.
Kurz gesagt: Das Format ist in der Logistik selten das Problem, die Steuerlogik der Positionen dagegen oft. Steuerpflichtige Inlandsfracht, nach § 4 Nr. 3 UStG steuerfreie Beförderung und Leistungen an EU-Kunden brauchen unterschiedliche Steuerkategorien; Zoll und Einfuhrumsatzsteuer passen gar nicht in eine gemischte Rechnung. Zwei der drei hier geprüften Speditionsprogramme erzeugen nach Herstellerangaben selbst XRechnung (reine XML-Datei, das Pflichtformat für Behörden) und ZUGFeRD (ein normales PDF mit denselben Rechnungsdaten als eingebettetem XML), beim dritten ist das öffentlich nicht belegt. Auch wenn Ihr Programm E-Rechnung kann: Stehen verauslagte Zollgebühren ohne Steuer neben steuerpflichtiger Fracht oder weicht ein Dieselzuschlag um einen Cent von der Summe ab, weist der Kunde oder das Rechnungsportal die Datei zurück, und die Zahlung verzögert sich um Wochen. Solche Fehler finden Sie mit der kostenlosen Prüfung, bevor die Rechnung hinausgeht.
Welche Rechnungen in der Logistik entstehen
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.
- Frachtrechnung je Sendung oder Auftrag: eine Fahrt, eine Rechnung. Die
Auftragsnummer des Kunden gehört in
purchase_order_reference(BT-13), die Sendungsnummer in die Positionsbeschreibung. Ein eigenes Feld für Sendungs-, Lieferschein- oder CMR-Nummern gibt es in EN 16931 nicht. - Sammelrechnung je Abrechnungszeitraum: alle Sendungen eines Monats auf einem
Beleg. Der Zeitraum steht in
billing_period_startundbilling_period_end(BT-73/BT-74), die einzelnen Fahrten als Positionen mit Datum und Sendungsnummer indescription. - Lager- und Kontraktlogistik: Monatsabrechnung aus Lagergeld je
Palettenstellplatz, Handling und Kommissionierung. Bei Stammkunden oft per SEPA-Lastschrift
(Code
59mit Mandatsreferenz und Gläubiger-ID). - Gutschriftverfahren gegenüber Frachtführern: Die Spedition rechnet die
Leistung des beauftragten Unternehmers selbst ab. Umsatzsteuerlich ist das eine Rechnung, die
der Leistungsempfänger ausstellt (§ 14 Abs. 2 Satz 2 UStG). In EN 16931 ist das Code
389, nicht381. - Korrekturen und Nachbelastungen: Eine nachträglich gemeldete Wartezeit
ändert eine bereits versandte Rechnung. Die korrigierte Fassung trägt Code
384und im Profil XRechnung genau einen Vorbeleg inpreceding_invoices.
Steuerfälle, die auf einer Transportrechnung zusammenkommen
Bei Güterbeförderungen an Unternehmer liegt der Leistungsort dort, wo der Auftraggeber ansässig ist (§ 3a Abs. 2 UStG). Daraus ergeben sich die Kategorien. Die Steuerkategorie ist das Kürzel, mit dem EN 16931 jede Position steuerlich einordnet (BT-151).
| Fall | Kategorie | Pflichtangaben im JSON | Hinweis |
|---|---|---|---|
| Inlandsfracht an deutschen Kunden, auch Maut und Dieselzuschlag | S, 19 % | tax_category, tax_rate | Maut ist Teil des Entgelts, kein durchlaufender Posten. |
| Beförderung von Ausfuhrgut ins Drittland, deutscher Auftraggeber | E, 0 % | exemption_reason im tax_breakdown | § 4 Nr. 3 Buchst. a UStG; Nachweise wie bisher führen. |
| Leistung an Unternehmer in einem anderen EU-Staat | AE, 0 % | buyer.vat_id, exemption_reason | Steuerschuldnerschaft des Leistungsempfängers. |
| Leistung an Unternehmer im Drittland | O | ganze Rechnung O | In Deutschland nicht steuerbar; E-Rechnungspflicht besteht nicht. |
| Zoll, Einfuhrumsatzsteuer, im Namen des Kunden verauslagt | kein Normfall | eigener Beleg | Mit dem Steuerberater klären, siehe Stolpersteine. |
Innergemeinschaftliche Beförderungen für einen deutschen Auftraggeber, etwa Kassel nach Lyon,
sind übrigens nicht steuerfrei. Die Befreiung nach § 4 Nr. 3 greift nur bei Bezug zur Ausfuhr
oder Einfuhr. Wer alle Auslandsfahrten pauschal auf E stellt, erzeugt eine formal
gültige, aber steuerlich falsche E-Rechnung; kein Validator erkennt das.
Einheiten und Zuschläge richtig codieren
E-Rechnungen verlangen Einheitencodes nach UN/ECE Recommendation 20/21. Die Kürzel aus dem Tarifwerk („km“, „to“, „Pal“, „Std“, „pausch“) müssen einmal zugeordnet werden:
KMTKilometer,TNETonne,HURStunde (Wartezeit, Standzeit),MINMinute (Kurier),LSPauschale (Tour, Relation),C62Stück für Palettenstellplätze, Ladehilfsmittel und Stopps.- Dieselzuschlag und Floater hängen an einer Fahrt: als
line_chargesmitamount,reason,basis_amountundpercentage. Das Positionsnetto ist dann Menge mal Preis plus Zuschlag. - Zuschläge für den ganzen Beleg, etwa eine Mautpauschale auf die
Sammelrechnung, stehen in
invoice.chargesmit eigener Steuerkategorie; die Summe gehört zusätzlich intotals.charge_total_amount. - Wartezeit und Zusatzleistungen können auch eigene Positionen sein. Das ist für den Kunden meist besser prüfbar als ein Zuschlag.
Ihre Software
cargo support (cs CONNECT): Speditionssoftware für Containerlogistik, Teil- und Komplettladungen, Neumöbel und Schwerlast. Laut Herstellerblog erzeugt cs CONNECT ZUGFeRD ab Version 9.30 und XRechnung ab Version 9.33.62, abgerechnet pro Transaktion über das Schnittstellenmodul „Rechnungsexport an Auftraggeber“. Seit Januar 2025 firmieren die Firmen der cargo support Group gemeinsam mit der active logistics GmbH als proLogistik Transportation GmbH (Dortmund); cargosupport.de leitet heute auf prologistik.com um.
CarLo (Soloplan): TMS der Soloplan GmbH aus Kempten mit Faktura, Sammelrechnungen und Gutschriftverfahren. Soloplan nennt für CarLo Versand in XRechnung und ZUGFeRD, Empfang mit Abgleich gegen die Kalkulation, OCR für PDF-Rechnungen und eine DATEV-Schnittstelle (Ratgeber vom 5. Mai 2026). Hier geht es vor allem um Gegenprüfung und Sonderfälle.
Active Logistics (active m-ware und weitere): Die active logistics GmbH bot TMS wie active m-ware und active alH.4 sowie Clearing- und EDI-Dienste an; auch sie gehört heute zur proLogistik Transportation GmbH. Eine öffentliche Herstelleraussage, dass active m-ware XRechnung oder ZUGFeRD im Standard erzeugt, haben wir nicht gefunden. Der Weg führt über den Rechnungsdruck oder den vorhandenen EDI-Datensatz.
Drei Wege aus der Speditionssoftware
- Weg A, PDF anreichern (Tage): Die Frachtrechnung wird wie bisher gedruckt.
Ein Skript schickt das PDF mit Kopf- und Positionsdaten an
POST /v1/invoices/generate(invoice_pdf_base64,allow_unverified_visual: true). Der Kunde sieht sein gewohntes Rechnungsbild mit eingebetteter XML. Dass PDF und Daten übereinstimmen, verantworten Sie in diesem Weg selbst. - Weg B, Datenexport (Tage bis Wochen): Wer Rechnungsdaten bereits per EDI, CSV oder Datenbank-View an Kunden oder Kooperationen liefert, hat den Datensatz schon. Ein Mapping baut daraus das JSON (ein Textformat für Daten), der Server rendert die Sicht-PDF aus derselben XML.
- Weg C, direkte Integration (Wochen): Aufruf beim Fakturalauf, Rückspeichern von XML und PDF ins Dokumentenarchiv der Sendung.
Für den Eingang gilt schon seit 1. Januar 2025: E-Rechnungen von Werkstätten, Tankkartenanbietern und Subunternehmern müssen Sie empfangen können. Lesen und prüfen lassen sie sich im kostenlosen Viewer.
Beispiel: Monats-Sammelrechnung mit Inlands- und Ausfuhrfahrt
Eine Spedition rechnet den September ab: eine Komplettladung nach Kilometern mit Dieselzuschlag, eine Wartezeit, Zwischenlagerung auf Palettenstellplätzen und eine Pauschalfahrt mit Ausfuhrgut in die Schweiz. Weg B, der Server rendert die Sicht-PDF.
Vorher: Ihr Programm druckt Kilometer, Wartezeit, Palettenstellplätze und eine Schweiz-Fahrt auf eine Sammelrechnung. Nachher: eine geprüfte XRechnung mit vier Positionen, zwei Steuerkategorien und korrekt gerundeter Summe, erzeugt über unsere API (Schnittstelle, über die Programme Daten austauschen).
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)
# Sammelrechnung September aus dem Faktura-Export: curl -X POST https://api.einfache-rechnungen.de/v1/invoices/generate \ -H "X-API-Key: erk_ihr_key" \ -H "Content-Type: application/json" \ -d @sammelrechnung-september.json
{
"invoice": {
"invoice_number": "SR-2026-0931",
"issue_date": "2026-10-02",
"billing_period_start": "2026-09-01",
"billing_period_end": "2026-09-30",
"due_date": "2026-10-16",
"currency": "EUR",
"buyer_reference": "Kreditor 70412",
"purchase_order_reference": "Rahmenauftrag RV-2026-117",
"seller": {
"name": "Nordhessen Transporte GmbH",
"address": { "street": "Frachtweg 4", "postal_code": "34123", "city": "Kassel", "country_code": "DE" },
"vat_id": "DE123456789",
"electronic_address": "rechnung@nordhessen-transporte.example",
"electronic_address_scheme": "EM",
"contact": { "name": "Disposition Faktura", "phone": "+49 561 000000", "email": "faktura@nordhessen-transporte.example" }
},
"buyer": {
"name": "Beispiel Handels GmbH",
"address": { "street": "Kaistraße 9", "postal_code": "20457", "city": "Hamburg", "country_code": "DE" },
"electronic_address": "eingangsrechnung@beispiel-handel.example",
"electronic_address_scheme": "EM"
},
"payment_means": { "code": "58", "iban": "DE89370400440532013000" },
"lines": [
{ "line_id": "1", "name": "Komplettladung Kassel nach Hamburg",
"description": "07.09.2026, Sendung 4711-0907, Ihre Bestellung PO 88123",
"quantity": "500", "unit_code": "KMT", "unit_price_net": "1.80",
"line_charges": [ { "amount": "58.50", "reason": "Dieselzuschlag (Floater)",
"basis_amount": "900.00", "percentage": "6.5" } ],
"line_net_amount": "958.50", "tax_category": "S", "tax_rate": "19" },
{ "line_id": "2", "name": "Wartezeit Entladestelle Hamburg",
"description": "07.09.2026, Sendung 4711-0907",
"quantity": "1.5", "unit_code": "HUR", "unit_price_net": "45.00",
"line_net_amount": "67.50", "tax_category": "S", "tax_rate": "19" },
{ "line_id": "3", "name": "Zwischenlagerung, Palettenstellplätze",
"description": "08.09. bis 12.09.2026",
"quantity": "24", "unit_code": "C62", "unit_price_net": "4.50",
"line_net_amount": "108.00", "tax_category": "S", "tax_rate": "19" },
{ "line_id": "4", "name": "Beförderung Kassel nach Basel (CH), Ausfuhr",
"description": "21.09.2026, Sendung 4711-0921, MRN liegt vor",
"quantity": "1", "unit_code": "LS", "unit_price_net": "1250.00",
"line_net_amount": "1250.00", "tax_category": "E", "tax_rate": "0" }
],
"tax_breakdown": [
{ "category": "S", "rate": "19", "taxable_amount": "1134.00", "tax_amount": "215.46" },
{ "category": "E", "rate": "0", "taxable_amount": "1250.00", "tax_amount": "0.00",
"exemption_reason": "Steuerfrei nach § 4 Nr. 3 Buchst. a UStG (grenzüberschreitende Beförderung, Ausfuhr)" }
],
"totals": { "line_net_amount": "2384.00", "net_amount": "2384.00", "tax_amount": "215.46",
"gross_amount": "2599.46", "payable_amount": "2599.46" }
}
}
Die API rechnet nach: 500 × 1,80 = 900,00 plus 58,50 Zuschlag ergibt 958,50 für Position 1.
Weicht ein Betrag um einen Cent ab, kommt HTTP 422 als application/problem+json mit
dem betroffenen Feld und dem abgelehnten Wert zurück, statt einer ungültigen Rechnung.
Stolpersteine in der Logistik
- Zoll und Einfuhrumsatzsteuer in der Frachtrechnung: Abgaben, die Sie im
Namen und für Rechnung des Kunden verauslagen, können durchlaufende Posten sein und gehören dann
nicht zum Entgelt. EN 16931 kennt dafür kein Konzept, und die Kategorie
Odarf nach BR-O-11 nicht nebenSoderEstehen. Sonst: HTTP 422. Lösung: Prüfen Sie zuerst mit Ihrem Steuerberater, ob die Voraussetzungen eines durchlaufenden Postens (Handeln im Namen und für Rechnung des Kunden, Abschn. 10.4 UStAE) tatsächlich vorliegen. Nur wenn das zutrifft, rechnen Sie die Auslagen in einem eigenen Beleg ab, dessen Positionen alle KategorieOtragen. Der Auslagenbeleg darf nach BR-O-02 keine USt-IdNr. enthalten; Ihre Steuernummer steht dann inseller.tax_id. - Gutschrift ist nicht gleich Gutschrift: Wer die Frachtführer-Abrechnung mit
Code
381erzeugt, sendet dem Frachtführer technisch eine Minderung. Richtig ist389, mit dem Frachtführer alssellerund seiner IBAN. Pflegen Sie dafür Kontaktdaten und E-Mail-Adresse jedes Frachtführers, sonst fehlt die Verkäuferkontaktangabe, die XRechnung verlangt. - Sammelrechnung ohne Leistungszeitraum: Ohne
billing_period_start/_endund ohne Lieferdatum fehlt die Angabe zum Leistungszeitpunkt. Setzen Sie den Monat als Zeitraum und das Fahrtdatum je Position in die Beschreibung. - Rundung beim prozentualen Zuschlag: 6,5 % auf 899,10 € sind 58,4415 €. Rundet die Software erst in der Summe, stimmen Positions- und Belegsumme nicht mehr überein, und die Prüfung meldet eine Abweichung. Runden Sie jeden Zuschlag auf zwei Stellen, bevor Sie summieren.
- Öffentliche Auftraggeber: Umzüge für Behörden, Kurierfahrten für ein
Landesamt oder Winterdienstlogistik gehen als XRechnung mit Leitweg-ID in
buyer_reference. Schon heute Pflicht, unabhängig von 2027.
Häufige Fragen
Ist die Lkw-Maut auf der Rechnung ein durchlaufender Posten?
S und 19 %. Als Kategorie O gebucht, wäre die Rechnung
steuerlich falsch und würde zudem an der Regel BR-O-11 scheitern, sobald andere Positionen
Umsatzsteuer tragen.Welche Rechnungsart nehme ich im Gutschriftverfahren mit Frachtführern?
389, selbst ausgestellte Rechnung. Die Spedition
erstellt den Beleg, Verkäufer (seller) bleibt aber der Frachtführer, Käufer
(buyer) die Spedition. Code 381 bedeutet dagegen Gutschrift im
kaufmännischen Sinn, also eine Minderung oder ein Storno. Das Wort „Gutschrift“ gehört nach
§ 14 Abs. 4 Nr. 10 UStG auf den Beleg; schreiben Sie es zusätzlich in note.Muss eine Rechnung an einen Kunden in Frankreich ab 2027 eine E-Rechnung sein?
AE und der USt-IdNr. des Kunden.Wohin gehören Sendungsnummer und CMR-Nummer?
description) der
jeweiligen Fahrt. Die Auftrags- oder Bestellnummer Ihres Kunden gehört in
purchase_order_reference, weil die Buchhaltung des Kunden darüber automatisch
zuordnet.Wer haftet, wenn die E-Rechnung inhaltlich falsch ist?
Die genannten Programme sind Produkte der 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).
Transportrechnungen als E-Rechnung ausgeben
Kostenlos testen: 10 Rechnungen im Monat, keine Kreditkarte. Für die Anbindung Ihrer Speditionssoftware sprechen Sie mit uns.
Kostenlos registrieren Anbindung besprechenQuellen (abgerufen am 25.09.2026): proLogistik, Aus active logistics und cargo support wird proLogistik Transportation (22.01.2025); cargo support, XRechnungen/ZUGFeRD Rechnungen (10.09.2021, Archivkopie); Soloplan, E-Rechnung in der Logistik (05.05.2026); active logistics, active m-ware (Archivkopie 2019); § 4 UStG; § 3a UStG; § 14 UStG.