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
583 lines
27 KiB
Markdown
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
|
|
|