Zum Inhalt

Rechnungsdaten auf ZUGFeRD abbilden

Der Service Task „Rechnungsdaten für ZUGFeRD aufbereiten" wandelt die Rechnungsdaten aus dem Pantarey-Formular in die strukturierte ZUGFeRD-Datenstruktur (EN16931, Cross-Industry Invoice) um. Damit wird die Grundlage für die elektronische Rechnungsstellung nach dem europäischen Standard geschaffen.


Funktionsweise

Der Service nimmt die flachen Rechnungsdaten (nach der Betragsberechnung) und erzeugt daraus ein strukturiertes JSON-Objekt gemäß dem ZUGFeRD EN16931-Standard:

  • Verkäufer und Käufer werden aus den Rechnungsdaten extrahiert und den entsprechenden ZUGFeRD-Feldern zugeordnet.
  • Rechnungspositionen werden in das CII-Zeilenformat (Cross-Industry Invoice) überführt.
  • Steueraufschlüsselung, Zahlungsbedingungen und Lieferdaten werden automatisch abgeleitet.
  • Mengeneinheiten werden von Klartext (z. B. „Stunden", „Stück") in die standardisierten UN/ECE-Codes (z. B. HUR, C62) übersetzt.

Input-Parameter

Als Eingabe wird das Rechnungsobjekt erwartet — idealerweise nach der Betragsberechnung durch Rechnungsbeträge berechnen:

{
  "app_invoice_no": "RE-2026-001",
  "app_invoice_date": "2026-04-08",
  "app_due_date": "2026-05-08",
  "app_seller_name": "Meine Firma GmbH",
  "app_seller_street": "Musterstraße 1",
  "app_seller_zip": "12345",
  "app_seller_city": "Musterstadt",
  "app_seller_country": "DE",
  "app_seller_vat_id": "DE123456789",
  "app_recipient_name": "Kunde AG",
  "app_recipient_street": "Kundenweg 5",
  "app_recipient_zip": "54321",
  "app_recipient_city": "Kundenstadt",
  "app_invoice_items_custom": [
    {
      "app_item_description": "Beratung",
      "app_amount": 10,
      "app_item_price_net": 150.00,
      "app_vat_percentage": 19,
      "app_unit": "Stunden",
      "app_items_total_sum_net": 1500.00
    }
  ],
  "app_net_total": 1500.00,
  "app_vat_total": 285.00,
  "app_gross_total": 1785.00
}

Erläuterung:

  • Alle Felder mit dem Präfix app_seller_* beschreiben den Rechnungssteller.
  • Alle Felder mit dem Präfix app_recipient_* beschreiben den Rechnungsempfänger.
  • Die berechneten Beträge (app_net_total, app_vat_total, app_gross_total) werden aus dem vorherigen Berechnungsschritt übernommen.

Output

Das Rechnungsobjekt wird um das Feld app_zugferd_data erweitert, das die vollständige ZUGFeRD-Datenstruktur enthält:

{
  "app_zugferd_data": {
    "exchangeddocumentcontext": { ... },
    "exchangeddocument": {
      "id": "RE-2026-001",
      "typecode": "380",
      "issuedatetime": "20260408"
    },
    "supplychaintradetransaction": {
      "includedsupplychaintradelineitem": [ ... ],
      "applicableheadertradeagreement": { ... },
      "applicableheadertradedelivery": { ... },
      "applicableheadertradesettlement": { ... }
    }
  }
}

Dieses Feld wird anschließend vom Service E-Rechnung erstellen (ZUGFeRD) verwendet, um die XML-Daten in ein PDF/A-3-Dokument einzubetten.


Unterstützte Mengeneinheiten

Eingabe UN/ECE Code Bedeutung
Stück, Stk C62 Stück
Pauschal LS Pauschal
Stunde, Stunden HUR Stunde
Tag, Tage DAY Tag
Monat, Monate MON Monat
km KMT Kilometer
kg KGM Kilogramm
Liter LTR Liter
m, m², m³ MTR, MTK, MTQ Meter / Fläche / Volumen

Hinweise

  • Dieser Service wird typischerweise zwischen der Betragsberechnung und der ZUGFeRD-Einbettung eingesetzt.
  • Die Zuordnung erfolgt automatisch — es müssen keine ZUGFeRD-spezifischen Felder manuell befüllt werden.
  • Optional können zusätzliche Felder wie app_buyer_reference (Leitweg-ID), app_service_date, app_service_period_start und app_service_period_end übergeben werden.
  • Die Bestellnummer des Kunden kommt aus app_order_reference (BT-13), der Ansprechpartner beim Kunden aus dem Objekt app_buyer_contact mit app_buyer_contact_name, app_buyer_contact_phone und app_buyer_contact_email (BG-9). Ist app_buyer_contact leer, wird der Ansprechpartner des Rechnungsempfängers verwendet (main_contact mit given_name, family_name, tel und email). Die beiden Quellen werden nicht gemischt, leere Felder werden weggelassen.
  • Die USt-IdNr. des Rechnungsempfängers (vat_id an der Organisation) wird als BT-48 übernommen, sofern sie wie eine USt-IdNr. aufgebaut ist (Länderkennung plus Nummer). Andere Einträge, etwa eine Steuernummer, werden weggelassen.
  • Ist die Steuerart app_tax_mode (oder tax_mode) auf reverse_charge_13b gesetzt, wird die Rechnung mit Steuerkategorie AE, Befreiungsgrund und Rechnungshinweis ausgegeben. Details unter Reverse Charge (§ 13b UStG) in E-Rechnungen.
  • Der Rechnungstyp-Code ist standardmäßig 380 (Handelsrechnung). Mit app_invoice_type = storno wird 384 (Rechnungskorrektur) ausgegeben, mit credit_note 381 (Gutschrift).
  • Bei Stornorechnungen und Gutschriften werden Nummer und Datum der Originalrechnung aus app_original_invoice als Verweis übernommen (BT-25, BT-26). Bei eigenen Datenstrukturen können sie stattdessen über preceding_invoice_no und preceding_invoice_date übergeben werden; diese Angaben haben Vorrang.

Tipp

Für die meisten Anwendungsfälle wird empfohlen, statt der einzelnen Zwischenschritte den Service Komplette E-Rechnung erstellen zu verwenden — dieser übernimmt Berechnung, PDF-Erzeugung, ZUGFeRD-Mapping und XML-Einbettung automatisch in einem Schritt.