einfache- rechnungen.de
E-Rechnung für · Spedition & Logistik

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_start und billing_period_end (BT-73/BT-74), die einzelnen Fahrten als Positionen mit Datum und Sendungsnummer in description.
  • Lager- und Kontraktlogistik: Monatsabrechnung aus Lagergeld je Palettenstellplatz, Handling und Kommissionierung. Bei Stammkunden oft per SEPA-Lastschrift (Code 59 mit 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, nicht 381.
  • Korrekturen und Nachbelastungen: Eine nachträglich gemeldete Wartezeit ändert eine bereits versandte Rechnung. Die korrigierte Fassung trägt Code 384 und im Profil XRechnung genau einen Vorbeleg in preceding_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).

FallKategoriePflichtangaben im JSONHinweis
Inlandsfracht an deutschen Kunden, auch Maut und DieselzuschlagS, 19 %tax_category, tax_rateMaut ist Teil des Entgelts, kein durchlaufender Posten.
Beförderung von Ausfuhrgut ins Drittland, deutscher AuftraggeberE, 0 %exemption_reason im tax_breakdown§ 4 Nr. 3 Buchst. a UStG; Nachweise wie bisher führen.
Leistung an Unternehmer in einem anderen EU-StaatAE, 0 %buyer.vat_id, exemption_reasonSteuerschuldnerschaft des Leistungsempfängers.
Leistung an Unternehmer im DrittlandOganze Rechnung OIn Deutschland nicht steuerbar; E-Rechnungspflicht besteht nicht.
Zoll, Einfuhrumsatzsteuer, im Namen des Kunden verauslagtkein Normfalleigener BelegMit 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:

  • KMT Kilometer, TNE Tonne, HUR Stunde (Wartezeit, Standzeit), MIN Minute (Kurier), LS Pauschale (Tour, Relation), C62 Stück für Palettenstellplätze, Ladehilfsmittel und Stopps.
  • Dieselzuschlag und Floater hängen an einer Fahrt: als line_charges mit amount, reason, basis_amount und percentage. 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.charges mit eigener Steuerkategorie; die Summe gehört zusätzlich in totals.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

  1. 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.
  2. 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.
  3. 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 O darf nach BR-O-11 nicht neben S oder E stehen. 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 Kategorie O tragen. Der Auslagenbeleg darf nach BR-O-02 keine USt-IdNr. enthalten; Ihre Steuernummer steht dann in seller.tax_id.
  • Gutschrift ist nicht gleich Gutschrift: Wer die Frachtführer-Abrechnung mit Code 381 erzeugt, sendet dem Frachtführer technisch eine Minderung. Richtig ist 389, mit dem Frachtführer als seller und 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/_end und 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?
Nein. Mautschuldner ist das Transportunternehmen selbst. Die weiterberechnete Maut ist Teil des Entgelts und wird wie die Fracht besteuert, im Inland also mit Kategorie 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?
Code 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?
Nein. Die deutsche Pflicht betrifft Umsätze zwischen Unternehmen, die beide im Inland ansässig sind. Eine Leistung an einen französischen Unternehmer dürfen Sie weiter als PDF abrechnen. Wünscht der Kunde trotzdem ein strukturiertes Format, erzeugen Sie die Rechnung mit Kategorie AE und der USt-IdNr. des Kunden.
Wohin gehören Sendungsnummer und CMR-Nummer?
EN 16931 hat kein eigenes Feld für Sendungs-, Lieferschein- oder Frachtbriefnummern. Setzen Sie sie in die Positionsbeschreibung (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?
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.

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 besprechen

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

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