Files
Masterarbeit/QuellCode/CentronERP/docs/reference/zugferd-feldzuordnung-anwender.md
T
Christoph Schwörer f045b99a25 Codebasis als Dateien ins Arbeitsrepo statt als Gitlink
QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
2026-08-26 07:43:51 +02:00

583 lines
27 KiB
Markdown

# ZUGFeRD / XRechnung Feldzuordnung
Diese Dokumentation erklärt, welche Felder aus c-entron in die ZUGFeRD/XRechnung XML-Datei übernommen werden.
## Übersicht
c-entron erstellt beim Export von Rechnungen und Gutschriften automatisch eine ZUGFeRD/XRechnung-konforme XML-Datei. Diese Dokumentation zeigt Ihnen, aus welchen c-entron Feldern die einzelnen XML-Informationen stammen.
### Unterstützte Versionen
- ZUGFeRD 1.0 (Altversion)
- ZUGFeRD 2.0 / XRechnung 1.2
- ZUGFeRD 2.1 / XRechnung 2.0, 2.2, 2.3.1
- ZUGFeRD 2.1 / XRechnung 3.0.1 (aktuell)
---
## Dokumentkopf
### Grundlegende Rechnungsinformationen
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Rechnungsnummer | `ram:ID` | Rechnungsnummer | Die Belegnummer der Rechnung/Gutschrift |
| Rechnungstyp | `ram:TypeCode` | Belegart | "380" = Rechnung, "381" = Gutschrift |
| Rechnungsdatum | `ram:IssueDateTime/udt:DateTimeString` | Rechnungsdatum | Datum der Rechnungserstellung |
| Zahlungsbedingungen (Notiz) | `ram:IncludedNote` | Zahlungskonditionen Text | Freitext zu den Zahlungsbedingungen |
| Verkäufer Information (Notiz) | `ram:IncludedNote[@SubjectCode="REG"]` | Automatisch generiert | Name, Adresse, Geschäftsführer, Handelsregisternummer |
| Verwendungszweck (Notiz) | `ram:IncludedNote[@SubjectCode="ABT"]` | Bankverbindung Einstellungen | Verwendungszweck für Überweisung |
---
## Verkäufer (Eigene Firma)
Der Verkäufer repräsentiert Ihre eigene Firma (Mandant) oder Filiale.
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| **Identifikation** | | | |
| Lieferantennummer (beim Kunden) | `ram:SellerTradeParty/ram:ID` | Eigene Lieferantennummer | Ihre Lieferantennummer beim Kunden |
| Handelsregisternummer | `ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID` | Mandant → Handelsregisternummer | Handelsregisternummer (HRB) |
| **Name und Kontakt** | | | |
| Firmenname | `ram:SellerTradeParty/ram:Name` | Filiale → Name oder Mandant → Name | Name der Filiale (oder Mandant, abhängig von Einstellung) |
| Geschäftsführer | `ram:SellerTradeParty/ram:DefinedTradeContact/ram:PersonName` | Mandant → Geschäftsführer | Name des Geschäftsführers |
| Abteilung | `ram:SellerTradeParty/ram:DefinedTradeContact/ram:DepartmentName` | Kontaktperson → Abteilung | Abteilungsname (falls vorhanden) |
| Telefon | `ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:CompleteNumber` | Filiale → Telefon oder Mandant → Telefon | Telefonnummer |
| E-Mail | `ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID` | Filiale → E-Mail oder Mandant → E-Mail | E-Mail-Adresse |
| **Adresse** | | | |
| Postleitzahl | `ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode` | Filiale → PLZ oder Mandant → PLZ | Postleitzahl |
| Straße | `ram:SellerTradeParty/ram:PostalTradeAddress/ram:LineOne` | Filiale → Straße oder Mandant → Straße | Straße und Hausnummer |
| Stadt | `ram:SellerTradeParty/ram:PostalTradeAddress/ram:CityName` | Filiale → Stadt oder Mandant → Stadt | Ort |
| Land | `ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID` | Land → Ländercode | Zweistelliger Ländercode (z.B. "DE") |
| **Steuer** | | | |
| Steuernummer | `ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID="VA"]` | Mandant → Steuernummer | Steueridentifikationsnummer |
### Datenquelle
- Wenn eine Filiale auf der Rechnung hinterlegt ist, werden deren Daten verwendet
- Andernfalls werden die Daten des Mandanten verwendet
- Das Land wird aus der Filiale, dem Mandanten oder dem Standardland ermittelt
---
## Käufer (Kunde)
Der Käufer repräsentiert Ihren Kunden.
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| **Identifikation** | | | |
| Kundennummer | `ram:BuyerTradeParty/ram:ID` | Rechnung → Kundennummer | Kundennummer in c-entron |
| **Name und Kontakt** | | | |
| Firmenname | `ram:BuyerTradeParty/ram:Name` | Rechnungsempfänger → Firmenname | Name des Rechnungsempfängers |
| Kontaktperson | `ram:BuyerTradeParty/ram:DefinedTradeContact/ram:PersonName` | Rechnungsempfänger → Kontaktname | Name der Kontaktperson |
| Abteilung (Kontakt) | `ram:BuyerTradeParty/ram:DefinedTradeContact/ram:DepartmentName` | Rechnungsempfänger → Kontakt-Abteilung | Abteilung der Kontaktperson |
| Telefon | `ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:CompleteNumber` | Rechnung → Kontakt Telefon | Telefonnummer des Kontakts |
| E-Mail | `ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID` | Rechnung → Kontakt E-Mail | E-Mail-Adresse des Kontakts |
| **Adresse** | | | |
| Postleitzahl | `ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode` | Rechnungsempfänger → PLZ | Postleitzahl |
| Straße (Zeile 1) | `ram:BuyerTradeParty/ram:PostalTradeAddress/ram:LineOne` | Rechnungsempfänger → Strukturiert aufgebaut | Erste Adresszeile (siehe unten) |
| Adresszeile 2 | `ram:BuyerTradeParty/ram:PostalTradeAddress/ram:LineTwo` | Rechnungsempfänger → Strukturiert aufgebaut | Zweite Adresszeile (siehe unten) |
| Adresszeile 3 | `ram:BuyerTradeParty/ram:PostalTradeAddress/ram:LineThree` | Rechnungsempfänger → Strukturiert aufgebaut | Dritte Adresszeile (siehe unten) |
| Stadt | `ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CityName` | Rechnungsempfänger → Stadt | Ort |
| Land | `ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID` | Rechnungsempfänger → Land | Zweistelliger Ländercode |
| **Steuer** | | | |
| USt-IdNr. | `ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID="VA"]` | Rechnung → USt-IdNr. | Umsatzsteuer-Identifikationsnummer |
### Strukturierter Adressaufbau
c-entron baut die Empfängeradresse intelligent aus den Rechnungsempfänger-Daten auf (maximal 3 Zeilen):
1. **Firmenname** - Der Firmenname (erste Priorität)
2. **Adresszusatz** - Zusätzlicher Adresszusatz
3. **Abteilung / Kontakt-Abteilung** - Abteilungsinformationen (Reihenfolge konfigurierbar über Einstellung "Kontakt-Abteilung zuerst")
4. **Kontaktname** - Name der Kontaktperson
5. **Straße/Hausnummer oder Postfach** - Entweder Straßenadresse oder Postfach
Die erste Information wird als `Name` verwendet, die weiteren Informationen füllen `AddressLine1`, `AddressLine2` und `AddressLine3` (maximal 3 Zeilen).
### Besonderheiten
- **Postfach**: Wenn ein Postfach angegeben ist, wird dieses anstelle der Straßenadresse verwendet
- **Straßenformatierung**: Straße und Hausnummer werden automatisch kombiniert
- **Abteilungsreihenfolge**: Die Reihenfolge von "Abteilung" und "Kontakt-Abteilung" kann über die Einstellung "Empfänger Kontakt-Abteilung zuerst" (ApplicationSettingID 10370) konfiguriert werden
- **Abweichende Rechnungsadresse**: Bei abweichender Rechnungsadresse wird der Name aus den Kundenstammdaten verwendet
---
## Bestellinformationen
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Leitweg-ID / Bestellnummer | `ram:BuyerReference` | Rechnung → Externe Bestellnummer | Bestellnummer des Kunden (bei XRechnung: Leitweg-ID) |
### Hinweis
Bei XRechnung-Exporten wird die Leitweg-ID als Pflichtfeld verwendet. Bei normalen ZUGFeRD-Exporten ist die Bestellnummer optional.
---
## Lieferinformationen
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Lieferdatum | `ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime` | Rechnung → Lieferdatum | Datum der Leistungserbringung |
### Wichtig
Das Lieferdatum ist in XRechnung ein Pflichtfeld. Wenn kein Lieferdatum angegeben ist, wird automatisch das Rechnungsdatum verwendet.
---
## Zahlungsinformationen
### Bankverbindung und SEPA
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| **Eigene Bankverbindung (Lastschrift)** | | | |
| SEPA Gläubiger-ID | `ram:CreditorReferenceID` | Mandant → SEPA-Identifikationsnummer | SEPA Creditor Identifier |
| **Währung** | | | |
| Währungscode | `ram:InvoiceCurrencyCode` | Rechnung → Währung | Währungscode (z.B. "EUR") |
| **Zahlungsart** | | | |
| Zahlungsart-Code | `ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode` | Rechnung → UNTDID 4461 Code | UN/EDIFACT Zahlungsart-Code (Standard: "ZZZ") |
| Zahlungsinformation | `ram:SpecifiedTradeSettlementPaymentMeans/ram:Information` | Rechnung → Zahlungskonditionen Text | Freitext zur Zahlungsart |
| **Lastschrift (nur bei SEPA)** | | | |
| Schuldner IBAN | `ram:PayerPartyDebtorFinancialAccount/ram:IBANID` | Bankverbindung → IBAN | IBAN des Kunden (bei Lastschrift) |
| **Überweisung (nur bei Banküberweisung)** | | | |
| Empfänger IBAN | `ram:PayeePartyCreditorFinancialAccount/ram:IBANID` | Mandant → Bankverbindung (Bank 1-4) | Ihre IBAN für Überweisungen |
| Empfänger BIC | `ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID` | Mandant → Bankverbindung (Bank 1-4) | Ihre BIC |
| Kontoinhaber | `ram:PayeePartyCreditorFinancialAccount/ram:AccountName` | Mandant → Bankverbindung (Bank 1-4) | Name des Kontoinhabers |
### Bankauswahl
Die verwendete Bankverbindung wird wie folgt bestimmt:
1. Einstellung "Mandantenbank für Rechnung verwenden" (Bank 1-4)
2. Bei Kundenrechnungen: Kundenstammdaten können die Bankauswahl überschreiben
3. Die Bankdaten werden aus den Mandantenstammdaten (Bank 1-4) geladen
---
## Steuerinformationen
### Steuerbeträge und Steuersätze
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Steuerbetrag | `ram:ApplicableTradeTax/ram:CalculatedAmount` | Berechnet aus Positionen | Steuerbetrag je Steuersatz |
| Steuerart | `ram:ApplicableTradeTax/ram:TypeCode` | Fest "VAT" | Mehrwertsteuer |
| Steuerbefreiungsgrund | `ram:ApplicableTradeTax/ram:ExemptionReason` | Abhängig vom Szenario | Textlicher Grund für Steuerbefreiung |
| Steuerbemessungsgrundlage | `ram:ApplicableTradeTax/ram:BasisAmount` | Berechnet aus Positionen | Nettobetrag für die Steuerberechnung |
| Steuerkategorie | `ram:ApplicableTradeTax/ram:CategoryCode` | Abhängig vom Szenario | Steuerkategorie-Code |
| Steuersatz | `ram:ApplicableTradeTax/ram:RateApplicablePercent` | Positionen → Steuersatz | Mehrwertsteuersatz in Prozent |
### Steuerkategorien
Die Steuerkategorie wird automatisch ermittelt:
- **S (Standard)**: Normaler Steuersatz
- **E (Befreit)**: 0% MwSt. bei steuerfreien Inlandsgeschäften
- **K (Innergemeinschaftlich)**: 0% MwSt. bei innergemeinschaftlichen Lieferungen
- **G (Export)**: 0% MwSt. bei Exporten außerhalb der EU
- **AE (Reverse Charge)**: Umkehrung der Steuerschuldnerschaft
### Steuerbefreiungsgründe
Je nach Steuersituation wird automatisch der passende Text eingefügt:
- **Reverse Charge**: "Steuerschuldnerschaft des Leistungsempfängers gem. §13B Abs 2 Nr. 10 UStG."
- **Steuerfrei Inland**: "Steuerfrei"
- **Innergemeinschaftlich**: "Kein Ausweis der Umsatzsteuer bei innergemeinschaftlichen Lieferungen"
- **Export**: "Steuer nicht erhoben aufgrund von Export außerhalb der EU"
---
## Abrechnungszeitraum
Für Vertragsabrechnungen werden die Abrechnungszeiträume automatisch ermittelt:
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Abrechnungszeitraum Von | `ram:BillingSpecifiedPeriod/ram:StartDateTime` | Vertragsabrechnung → Frühestes Startdatum | Beginn des Abrechnungszeitraums |
| Abrechnungszeitraum Bis | `ram:BillingSpecifiedPeriod/ram:EndDateTime` | Vertragsabrechnung → Spätestes Enddatum | Ende des Abrechnungszeitraums |
### Hinweis
Die Abrechnungszeiträume werden nur exportiert, wenn sie sich unterscheiden (Start ≠ Ende).
---
## Zahlungsbedingungen
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Beschreibung | `ram:SpecifiedTradePaymentTerms/ram:Description` | Rechnung → Zahlungsbedingungen + Skonto-Info | Vollständiger Text der Zahlungsbedingungen mit Skonto-Informationen |
| Fälligkeitsdatum | `ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime` | Rechnung → Fälligkeitsdatum | Datum, bis wann die Zahlung erfolgen muss |
| SEPA Mandatsreferenz | `ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID` | Bankverbindung → Mandatsreferenz | SEPA-Mandatsreferenznummer (nur bei Lastschrift) |
### Skonto-Information
Wenn Skonto-Konditionen hinterlegt sind, werden diese automatisch im BR-DE-18 Format an die Beschreibung angehängt.
---
## Betragsübersicht
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Nettobetrag (Summe) | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount` | Rechnung → Nettobetrag gesamt | Summe aller Netto-Positionsbeträge |
| Zuschlagsbetrag | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount` | 0 (fest) | Gesamtbetrag der Zuschläge |
| Abschlagsbetrag | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount` | 0 (fest) | Gesamtbetrag der Abschläge |
| Steuerbemessungsgrundlage | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount` | Rechnung → Nettobetrag gesamt | Grundlage für die Steuerberechnung |
| Steuerbetrag gesamt | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount` | Rechnung → Steuerbetrag gesamt | Summe aller Steuerbeträge |
| Bruttobetrag gesamt | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount` | Netto + Steuer | Gesamtbetrag der Rechnung |
| Bereits gezahlt | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount` | 0 (fest) | Bereits gezahlter Betrag |
| Zu zahlender Betrag | `ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount` | Netto + Steuer | Offener Zahlungsbetrag |
### Validierung
Das System prüft automatisch:
- Die Summe der Positions-Nettobeträge muss dem Gesamt-Nettobetrag entsprechen (Toleranz: ±3,00)
- Die Summe der Positions-Bruttobeträge muss dem Gesamt-Bruttobetrag entsprechen (Toleranz: ±3,00)
- Bei Abweichungen innerhalb der Toleranz wird eine Warnung ausgegeben
- Bei Abweichungen außerhalb der Toleranz schlägt der Export fehl
---
## Gutschriften: Verweis auf ursprüngliche Rechnung
Bei Gutschriften wird automatisch ein Verweis auf die ursprüngliche Rechnung erstellt:
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Original-Rechnungsnummer | `ram:InvoiceReferencedDocument/ram:IssuerAssignedID` | Ursprüngliche Rechnung → Nummer | Nummer der ursprünglichen Rechnung |
| Original-Rechnungsdatum | `ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime` | Ursprüngliche Rechnung → Datum | Datum der ursprünglichen Rechnung |
### Voraussetzung
- Gilt nur für Gutschriften
- Es muss genau eine Ursprungsrechnung vorhanden sein
- Der Verweis wird automatisch aus den Positionsursprüngen ermittelt
---
## Rechnungspositionen
Jede Position der Rechnung oder Gutschrift wird in die XML übernommen.
### Positionsnummer
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Positionsnummer | `ram:AssociatedDocumentLineDocument/ram:LineID` | Automatisch fortlaufend | Fortlaufende Nummer (1, 2, 3, ...) |
---
### Artikelinformationen
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| EAN-Code (GTIN) | `ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID="0160"]` | Position → EAN-Code | EAN/GTIN Barcode des Artikels |
| Artikelnummer | `ram:SpecifiedTradeProduct/ram:SellerAssignedID` | Position → Artikelcode | Ihre interne Artikelnummer |
| Positionstext | `ram:SpecifiedTradeProduct/ram:Name` | Position → Text | Bezeichnung / Beschreibungstext |
| Seriennummer (Beschreibung) | `ram:ApplicableProductCharacteristic/ram:Description` | Automatisch: "Seriennummer 1", "Seriennummer 2", ... | Bezeichnung der Seriennummer |
| Seriennummer (Wert) | `ram:ApplicableProductCharacteristic/ram:Value` | Position → Barcodes | Barcode-Wert / Seriennummer |
### Seriennummern (Barcodes)
- Wenn einer Position Barcodes/Seriennummern zugeordnet sind, werden diese automatisch exportiert
- Pro Position können **mehrere Seriennummern** exportiert werden
- Jede Seriennummer wird mit einer fortlaufenden Nummer versehen (Seriennummer 1, 2, 3, ...)
- **Bei Titelpositionen**: Seriennummern aller untergeordneten Positionen werden zur Titelposition zusammengefasst
- Die Seriennummern werden als Produktmerkmale (`ApplicableProductCharacteristic`) im XML abgelegt
### Einstellungen
- Der Export von EAN-Codes kann in den Rechnungseinstellungen deaktiviert werden
- Der Export von Artikelnummern kann in den Rechnungseinstellungen deaktiviert werden
---
### Preise und Mengen
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Einzelpreis (Netto) | `ram:NetPriceProductTradePrice/ram:ChargeAmount` | Position → Netto-Einzelpreis | Netto-Einzelpreis des Artikels |
| Menge | `ram:BilledQuantity` | Position → Menge | Abgerechnete Menge |
| Mengeneinheit | `ram:BilledQuantity[@unitCode]` | Artikel → Mengeneinheit → UN/ECE-Code | UN/ECE-Code der Mengeneinheit (z.B. "C62" = Stück) |
| Positionssumme (Netto) | `ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount` | Position → Netto-Positionssumme | Netto-Gesamtbetrag der Position |
### Besonderheiten bei negativen Preisen
ZUGFeRD unterstützt keine negativen Preise. Das System:
1. Macht den Einzelpreis positiv
2. Negiert stattdessen die Menge
3. Das Ergebnis bleibt rechnerisch gleich
### Mengeneinheiten (UN/ECE-Codes)
- Wird automatisch aus den Artikelstammdaten übernommen
- Standardwert: "C62" (Stück/Einheit)
- Nur bei Artikelpositionen; bei anderen Positionsarten wird "C62" verwendet
---
### Steuern auf Positionsebene
| ZUGFeRD Feld | XML-Pfad | c-entron Quelle | Beschreibung |
|--------------|----------|-----------------|--------------|
| Steuerart | `ram:ApplicableTradeTax/ram:TypeCode` | Fest "VAT" | Mehrwertsteuer |
| Steuerkategorie | `ram:ApplicableTradeTax/ram:CategoryCode` | Abhängig vom Szenario | Steuerkategorie-Code (siehe oben) |
| Steuersatz | `ram:ApplicableTradeTax/ram:RateApplicablePercent` | Position → Steuersatz | Mehrwertsteuersatz in Prozent |
---
### Titelpositionen (Gruppierungen)
Titelpositionen ermöglichen die Gruppierung von Artikelpositionen:
| Verhalten | Beschreibung |
|-----------|--------------|
| **Eingeklappte Titelpositionen** | Werden als einzelne Position mit der Summe der untergeordneten Positionen exportiert |
| **Menge** | Wird immer auf 1 gesetzt |
| **Einzelpreis** | Entspricht der Positionssumme |
| **Steuersatz** | Wird aus den untergeordneten Positionen ermittelt |
### Einschränkungen bei Titelpositionen
- **Ausgeklappte Titelpositionen** werden nicht unterstützt (Export schlägt fehl)
- **Gemischte Steuersätze** in einer Titelposition werden nicht unterstützt (Export schlägt fehl)
- **Standard-Steuersatz**: Wenn eine Titelposition keine untergeordneten Positionen hat, wird 19% verwendet
- **Seriennummern**: Alle Seriennummern der untergeordneten Positionen werden zur Titelposition aggregiert
### Welche Positionen werden exportiert?
- Artikel
- Kundenrabatte
- Eingeklappte Titelpositionen
- Sortierung nach interner Position
---
## Export-Einstellungen
Die folgenden Einstellungen beeinflussen den ZUGFeRD-Export:
### Rechnungseinstellungen
- **Aktive ZUGFeRD-Version**: Legt fest, welche ZUGFeRD/XRechnung-Version exportiert wird
- **Mandantenname bevorzugen**: Verwendet den Mandantennamen statt des Filialnamens
- **EAN-Code exportieren**: Aktiviert/deaktiviert den Export von EAN-Codes
- **Artikelnummer exportieren**: Aktiviert/deaktiviert den Export von Artikelnummern
### Kundeneinstellungen
- **ZUGFeRD exportieren**: Kann pro Kunde aktiviert/deaktiviert werden
- **Mandantenbank**: Kann pro Kunde überschrieben werden
### SEPA-Einstellungen
- **SEPA aktiv**: Bestimmt, ob Lastschrift (SEPA) oder Überweisung verwendet wird
- **Mandatsreferenz**: SEPA-Mandatsreferenznummer der Bankverbindung
---
## Datenquellen im Überblick
### Stammdaten
- **Mandant**: Firmendaten, Bankverbindungen, Steuernummern
- **Filiale**: Filial-spezifische Adress- und Kontaktdaten
- **Kunde**: Kundenstammdaten mit Adressen und Kontakten
- **Artikel**: Artikelstammdaten mit Mengeneinheiten
### Belege
- **Rechnung/Gutschrift**: Alle rechnungsspezifischen Daten
- **Rechnungspositionen**: Positionsdaten mit Preisen, Mengen und Steuern
- **Bankverbindung**: IBAN, BIC, Mandatsreferenz
### Verträge
- **Vertragsabrechnung**: Abrechnungszeiträume für Vertragspositionen
### Einstellungen
- **Rechnungseinstellungen**: ZUGFeRD-Version, Export-Optionen
- **Zahlungsbedingungen**: Skonto-Konditionen
---
## Häufig gestellte Fragen
### Welche Daten muss ich in c-entron pflegen, damit der ZUGFeRD-Export funktioniert?
**Pflichtfelder für XRechnung:**
1. **Eigene Firma**: Vollständige Adressdaten, Steuernummer, Handelsregisternummer
2. **Kunde**: Vollständige Adressdaten, USt-IdNr. (bei EU-Geschäften)
3. **Rechnung**: Rechnungsdatum, Lieferdatum (wird notfalls automatisch gesetzt)
4. **Bankverbindung**: IBAN und BIC (für Überweisungen)
5. **Leitweg-ID**: Bei XRechnung-Pflicht im Feld "Externe Bestellnummer"
**Empfohlene Felder:**
- Zahlungsbedingungen mit Skonto
- Kontaktdaten (Telefon, E-Mail)
- EAN-Codes und Artikelnummern
- SEPA-Mandatsreferenz (bei Lastschrift)
---
### Wie werden die Empfänger-Adresszeilen aufgebaut?
c-entron verwendet die strukturierten Rechnungsempfänger-Daten und baut daraus intelligent die Adresszeilen auf:
**Verfügbare Felder:**
- **Firmenname** - Wird als Name des Empfängers verwendet
- **Adresszusatz** - Zusätzliche Adressinformation
- **Abteilung** - Abteilungsbezeichnung
- **Kontakt-Abteilung** - Abteilung der Kontaktperson
- **Kontaktname** - Name der Kontaktperson
- **Straße und Hausnummer** - Straßenadresse
- **Postfach** - Postfach (wird anstelle der Straße verwendet, wenn aktiviert)
**Automatischer Aufbau:**
1. Das erste verfügbare Feld wird als **Name** verwendet
2. Weitere Felder füllen **Adresszeile 1, 2 und 3** (maximal 3 zusätzliche Zeilen)
3. Die Reihenfolge von "Abteilung" und "Kontakt-Abteilung" ist konfigurierbar
4. Wenn ein Postfach angegeben ist, ersetzt dieses die Straßenadresse
**Beispiel:**
- **Name**: "Musterfirma GmbH"
- **Adresszeile 1**: "IT-Abteilung"
- **Adresszeile 2**: "z.Hd. Max Mustermann"
- **Straße**: "Musterstraße 123"
- **PLZ/Ort**: "12345 Musterstadt"
---
### Wie wird die Bankverbindung ausgewählt?
1. In den Rechnungseinstellungen wird festgelegt, welche Mandantenbank verwendet wird (Bank 1-4)
2. Diese Einstellung kann pro Kunde in den Kundenstammdaten überschrieben werden
3. Die Bankdaten werden aus den Mandantenstammdaten geladen
---
### Was passiert bei negativen Preisen?
ZUGFeRD unterstützt keine negativen Einzelpreise. Daher:
- Der Einzelpreis wird positiv gemacht
- Die Menge wird negativ gemacht
- Das Ergebnis (Positionssumme) bleibt identisch
---
### Wie funktionieren Titelpositionen im Export?
**Eingeklappte Titelpositionen:**
- Werden als eine Position exportiert
- Enthalten die Summe aller untergeordneten Positionen
- Menge ist immer 1
- Einzelpreis = Positionssumme
**Wichtige Einschränkungen:**
- Ausgeklappte Titelpositionen werden nicht unterstützt
- Alle untergeordneten Positionen müssen den gleichen Steuersatz haben
- Bei gemischten Steuersätzen schlägt der Export fehl
---
### Was bedeuten die Validierungs-Warnungen?
Das System prüft, ob die Summe der Positionen mit den Kopfbeträgen übereinstimmt:
- **Toleranz**: ±3,00 Euro
- **Warnung**: Abweichung innerhalb der Toleranz → Export erfolgt, Warnung wird protokolliert
- **Fehler**: Abweichung außerhalb der Toleranz → Export schlägt fehl
Ursachen können sein:
- Rundungsdifferenzen bei vielen Positionen
- Manuelle Korrekturen an Beträgen
- Fehlerhafte Steuerberechnungen
**Lösung**: Rechnung prüfen und ggf. Positionen anpassen
---
### Wie wird der Abrechnungszeitraum ermittelt?
Bei Vertragsabrechnungen:
- **Von**: Frühestes Startdatum aller Vertragspositionen
- **Bis**: Spätestes Enddatum aller Vertragspositionen
Bei normalen Rechnungen:
- Kein Abrechnungszeitraum (nur bei unterschiedlichen Daten relevant)
---
### Welche Mengeneinheiten werden unterstützt?
c-entron verwendet UN/ECE-Codes für Mengeneinheiten:
- **C62**: Stück / Einheit (Standard)
- **HUR**: Stunde
- **MTR**: Meter
- **MTK**: Quadratmeter
- **MTQ**: Kubikmeter
- **KGM**: Kilogramm
- **LTR**: Liter
- Und viele weitere...
Die Mengeneinheit wird aus den Artikelstammdaten übernommen. Falls nicht vorhanden, wird "C62" (Stück) verwendet.
---
### Wie werden Seriennummern / Barcodes exportiert?
c-entron unterstützt den Export von Seriennummern (Barcodes) in ZUGFeRD/XRechnung:
**Automatischer Export:**
- Wenn Sie einer Rechnungsposition Barcodes/Seriennummern zugeordnet haben, werden diese automatisch in die XML-Datei exportiert
- Jede Seriennummer wird als separates Produktmerkmal (`ApplicableProductCharacteristic`) gespeichert
**Mehrere Seriennummern pro Position:**
- Sie können beliebig viele Seriennummern pro Position exportieren
- Jede Seriennummer erhält automatisch eine fortlaufende Bezeichnung:
- "Seriennummer 1"
- "Seriennummer 2"
- "Seriennummer 3"
- usw.
**Titelpositionen:**
- Bei eingeklappten Titelpositionen werden alle Seriennummern der untergeordneten Positionen automatisch zur Titelposition zusammengefasst
- Die Reihenfolge der Seriennummern bleibt erhalten
**XML-Struktur:**
```xml
<ram:ApplicableProductCharacteristic>
<ram:Description>Seriennummer 1</ram:Description>
<ram:Value>SN-12345-ABC</ram:Value>
</ram:ApplicableProductCharacteristic>
<ram:ApplicableProductCharacteristic>
<ram:Description>Seriennummer 2</ram:Description>
<ram:Value>SN-67890-XYZ</ram:Value>
</ram:ApplicableProductCharacteristic>
```
**Anwendungsfall:**
Dies ist besonders nützlich für Produkte mit individuellen Seriennummern, z.B.:
- Elektronikgeräte (Laptops, Smartphones)
- Maschinen und Anlagen
- Fahrzeuge
- Medizinische Geräte
- Alle Produkte mit eindeutiger Identifikation
---
### Was ist der Unterschied zwischen ZUGFeRD und XRechnung?
**ZUGFeRD (Comfort):**
- Mehr optionale Felder
- Flexibler bei fehlenden Daten
- Für B2B-Geschäft geeignet
**XRechnung:**
- Pflicht für öffentliche Auftraggeber in Deutschland
- Strengere Validierung
- Leitweg-ID ist Pflichtfeld
- Lieferdatum ist Pflichtfeld
c-entron erstellt automatisch das richtige Format:
- **XRechnung**: Wenn eine Leitweg-ID angegeben ist
- **ZUGFeRD Comfort**: Wenn keine Leitweg-ID angegeben ist
---
## Version
| Version | Datum | Hinweise |
|---------|-------|----------|
| 1.2 | 2025 | Hinzugefügt: Strukturierte Rechnungsempfänger-Daten mit intelligentem Adressaufbau, verbesserte Ländercode-Unterstützung für Handelstyp-Ermittlung |
| 1.1 | 2025 | Hinzugefügt: Barcode/Seriennummern-Export in Rechnungspositionen |
| 1.0 | 2025 | Initiale Anwenderdokumentation für XRechnung 3.0.1 |
---
## Support
Bei Fragen zur ZUGFeRD/XRechnung-Funktionalität in c-entron wenden Sie sich bitte an:
- **c-entron Support**: erp-support@nexoware.com
- **Dokumentation**: Siehe auch die Online-Hilfe in c-entron