Zum Hauptinhalt springen

CSV-Import: Rechnungen importieren

Verfasst von Waldemar Schmidt

Überblick

Mit der hier beschriebenen Funktion importierst du Rechnungen inklusive ihrer Positionen in Xentral. Jede Zeile deiner CSV-Datei steht für eine Rechnungsposition; Zeilen, die zur selben Rechnung gehören, fasst Xentral über den Gruppenbezeichner zusammen, den du beim Datei-Upload wählst.

Der Datentyp Rechnung hat die Datenstruktur "Kopf und Positionen": Jedes Positions-Feld (z. B. Artikelnummer, Menge, Preis) wird pro Zeile gelesen und wird zu einer Position der Rechnung. Alle anderen Felder werden einmal je Rechnung gelesen (siehe Kopf-Importfelder (einmal je Rechnung)).

​

Voraussetzungen

Hinweise zum Import

  • Der Kunde muss in Xentral bereits angelegt sein. Xentral muss eine bestehende Adresse für die Rechnungsstellung bestimmen. Wie Xentral den Kunden genau ermittelt, erfährst du im Abschnitt Wie Xentral den Kunden ermittelt. Schlägt der Abgleich über alle Wege fehl, wird der Import für diese Rechnung nicht durchgeführt.

  • Wenn du einen Verkaufsauftrag oder ein Projekt referenzierst, müssen diese bereits in Xentral existieren — andernfalls wird die Rechnung dennoch importiert und mit einer Warnung markiert (siehe Optionale Verknüpfungen: Verkaufsauftrag und Projekt).

​

Gruppierung bei diesem Datentyp

Wähle beim Hochladen deiner Datei eine Spalte als Gruppenbezeichner — typischerweise deine Rechnungs-/Belegnummer — und gib allen Positionen derselben Rechnung denselben Wert in dieser Spalte. Positions-Felder werden einmal je Zeile gelesen — eine Zeile, eine Position. Alle anderen (Kopf-)Felder beschreiben die Rechnung selbst und sollten in allen Zeilen einer Rechnungsgruppe denselben Wert tragen.

​

Kopf-Importfelder (einmal je Rechnung)

Diese Felder wiederholst du nicht je Position; verwende in allen Zeilen einer Rechnungsgruppe denselben Wert.

Feld

Pflichtfeld

Hinweise

Rechnungsnummer

Nein

Leer lassen, damit Xentral beim Freigeben der Rechnung automatisch eine Nummer vergibt (siehe Rechnungen freigeben).

Rechnungsdatum

Nein

Datum, Format JJJJ-MM-TT.

Adress-ID

Nein

Xentral-ID einer bestehenden Adresse. Wenn gesetzt, wird sie direkt verwendet — kein Adressabgleich (siehe Wie Xentral den Kunden ermittelt).

Auftrags-ID / Auftragsnummer

Nein

Bei Auftragsnummer sucht Xentral einen Verkaufsauftrag mit dieser Belegnummer. Wenn kein Treffer gefunden wird, erscheint eine Warnung und der Import läuft weiter (siehe Optionale Verknüpfungen: Verkaufsauftrag und Projekt).

Projekt-ID / Projektname

Nein

Bleibt das Feld leer, verwendet Xentral das in Schritt 2: Konfiguration hinterlegte Projekt, falls vorhanden. Bei nur Projektname sucht Xentral ein Projekt mit diesem Namen. Wenn kein Treffer gefunden wird, erscheint eine Warnung und der Import läuft weiter.

Bearbeiter-ID

Nein

Fällt auf den in Schritt 2: Konfiguration hinterlegten Bearbeiter zurück, falls leer.

Verkauf-ID

Nein

Fällt auf den in Schritt 2: Konfiguration hinterlegten Vertrieb zurück, falls leer.

Sprache

Nein

2-stelliger Sprachcode oder leer.

Währung

Bedingt

3 Großbuchstaben, z. B. EUR. Pflicht, sobald eine Position einen Netto- oder Bruttopreis hat.

Ihre Bestellnummer

Nein

Text

MRN (Master Reference Number)

Nein

Text

Abweichende Debitorenkontonummer

Nein

Text

Label 1 / Label 2 / Label 3

Nein

Text

Besteuerung

Nein

Zulässige Werte: Inland, Export, EU-Lieferung / Lieferschwelle, Steuerfrei Inland.

USt-IdNr.

Nein

Text

Wechselkurs

Nein

Zahl

Kostenstelle

Nein

Text

Lieferdatum

Nein

Datum, Format JJJJ-MM-TT.

Interne Bezeichnung

Nein

Text

Kopftext / Freitext

Nein

Text, der über bzw. unter den Positionen im Druck erscheint.

Interner Kommentar

Nein

Wird dem Kunden nicht angezeigt.

Lieferbedingung

Nein

Text

Ohne Briefkopf drucken

Nein

true / false

Ohne Artikeltext drucken

Nein

true / false

Alternativen Belegtitel verwenden

Nein

true / false

Rechnungsadresse

Diese Felder beschreiben die Rechnungsadresse. Es sind Kopf-Felder — nicht je Position wiederholt — und werden zusammen mit der Adress-ID auch genutzt, um einen bestehenden Kunden zu finden (siehe Wie Xentral den Kunden ermittelt).

Feld

Hinweise

Rechnungsadresse Name

–

Anredetyp

Zulässige Werte: mrs, mr, company, other.

Anrede

–

Titel

–

Ansprechpartner

–

Abteilung / Unterabteilung

–

Straße

Wird für den Abgleich Name + PLZ + Straße genutzt.

Adresszusatz

–

PLZ

Wird für den Abgleich Name + PLZ + Straße genutzt.

Ort

–

Bundesland

Genau 2 Großbuchstaben, falls angegeben.

Land

2 Großbuchstaben oder leer.

GLN

–

E-Mail

Muss eine gültige E-Mail-Adresse sein. Wird für den Kundenabgleich per E-Mail genutzt.

Telefon / Mobil / Fax

–

Mahnwesen

Kopf-Felder für den Mahnstatus der Rechnung.

Feld

Hinweise

Mahnung manuell gesetzt

Muss true sein, damit die folgenden Felder übernommen werden; sonst ignoriert Xentral vorhandene Werte beim Import bzw. leert sie.

Mahnstufe

Zulässige Werte: paymentReminder1, reminder1, reminder2, reminder3, debtCollection, lossOfReceivables.

Mahndatum

Datum, JJJJ-MM-TT

Bezahlt am

Datum, JJJJ-MM-TT

Tatsächlich bezahlter Betrag

Zahl

Gewährter Skonto

Zahl

Mahnsperre

true / false

Mahnkommentar

Text

Zahlstatus

Zulässige Werte: pending, paid, partiallyPaid, cancelled, partiallyCancelled, badDebt, debited.

​

Positions-Importfelder (je Zeile)

Jede CSV-Zeile innerhalb einer Rechnungsgruppe steht für eine Position. Diese Felder liest Xentral je Zeile einzeln.

Feld

Pflichtfeld

Hinweise

Artikelnummer

Ja*

*Pflicht, damit die Zeile als Position gilt; muss zu einem bestehenden Artikel passen. Wenn kein Treffer gefunden wird, erscheint ein Fehler und die Zeile wird abgelehnt.

Artikel Menge

Ja, wenn Artikelnummer gesetzt

Menge. Wird beim Import in eine Zahl umgewandelt.

Artikelbezeichnung

Nein

–

Artikelbeschreibung

Nein

–

Artikel Einheit

Nein

–

Artikelpreis Netto

Netto oder Brutto Pflicht

Artikelpreis Brutto

Netto oder Brutto Pflicht

Artikel MwSt (%, Steuersatz)

Nein

Darf nicht negativ sein.

Artikel MwSt (absolut)

Nein

Absoluter Steuerbetrag. Darf nicht negativ sein.

Rabatt (Position, %)

Nein

–

Artikel Lieferdatum

Nein

Datum, JJJJ-MM-TT

Artikel Ursprungsland

Nein

–

Artikel Zolltarifnummer

Nein

–

Artikel Kunden-Artikelnummer

Nein

–

Artikel Interner Kommentar

Nein

–

Artikel Steuerrechtlicher Hinweis

Nein

–

Artikelposition bei Druck ausblenden

Nein

true / false

Artikel ohne Preis drucken

Nein

true / false

​

Formatierungsregeln

Halte dich an folgende Formatierungsregeln, um ein reibungsloses Mapping zu gewährleisten:

Typ

Format

Beispiel

Preise / Dezimalzahlen

Punkt als Dezimaltrennzeichen

2.59 für 2,59 €

Datum

JJJJ-MM-TT

2026-05-01

CSV-Trennzeichen

Semikolon oder Komma, einstellbar

; oder ,

​

Arbeiten mit IDs

Manchmal ist es notwendig oder sinnvoll, beim Import eine ID zu nutzen, wobei diese eine echte Referenz zur Datenbank darstellt und keine Nummer oder Bezeichnung ist.

Anmerkung

Beachte, dass hier eine eindeutige Datenbank-ID gemeint ist, die nicht mit einer Nummer oder Bezeichnung verwechselt werden darf.

Um die ID eines Datensatzes zu ermitteln, benötigst du nur zwei Schritte:

  1. Öffne den Datensatz, dessen ID du herausfinden möchtest.

  2. Lies die ID in der URL ab.

​

Wie Xentral den Kunden ermittelt

Xentral muss jeder Rechnung eine bestehende Kundenadresse zuordnen. Dazu wird der Reihenfolge nach Folgendes versucht, und beim ersten Erfolg gestoppt:

  1. Adress-ID — wenn direkt angegeben, wird sie unverändert verwendet.

  2. Die Adresse des verknüpften Verkaufsauftrags — wenn die Auftragsnummer zu einem bestehenden Auftrag aufgelöst wurde und keine Adress-ID gesetzt war.

  3. Ein Kunde, der über die E-Mail der Rechnungsadresse gefunden wird.

  4. Ein Kunde, dessen Name, PLZ und Straße mit der Rechnungsadresse übereinstimmen.

Wichtig

Führt keiner dieser vier Wege zu einem bestehenden Kunden, schlägt der Rechnungsimport mit dem Fehler "No customer found" fehl. Stelle sicher, dass mindestens einer dieser Wege für jede zu importierende Zeile zum Erfolg führt.

​

Optionale Verknüpfungen: Verkaufsauftrag und Projekt

Anders als bei der Kundenadresse ist die Verknüpfung mit Verkaufsauftrag oder Projekt optional. Findet Xentral keinen Treffer, wird die Rechnung dennoch importiert — nur mit einer Warnung, nicht mit einem Fehler.

  • Gibst du eine Auftragsnummer an, für die Xentral keinen passenden Verkaufsauftrag findet, wird die Rechnung dennoch importiert — die Zeile erhält eine Warnung, dass kein Verkaufsauftrag mit dieser Nummer gefunden wurde.

  • Gibst du einen Projektnamen an, für den Xentral kein passendes Projekt findet (und es existiert weder eine Projekt-ID noch ein konfiguriertes Standardprojekt), wird die Rechnung dennoch importiert und mit einer Warnung markiert.

  • Bleiben Bearbeiter oder Verkauf-ID leer, füllt Xentral sie mit den in Schritt 2: Konfiguration hinterlegten Standardwerten — ohne Warnung.

​

Preis- und Steuerregeln für Positionen

Für jede Position gelten folgende Regeln:

  • Gib je Position mindestens den Netto- oder den Bruttopreis an. Fehlen beide, schlägt die Zeile mit einem Fehler fehl.

  • Egal welchen Preis du angibst: Xentral berechnet den jeweils anderen über den Steuersatz oder den Steuerbetrag.

  • Der Bruttopreis darf nie niedriger sein als der Nettopreis. Xentral prüft das und protokolliert einen Verstoß als Fehler.

  • Steuersatz und Steuerbetrag dürfen nicht negativ sein.

  • Die Währung im Kopf-Bereich ist Pflicht, sobald eine Position einen Preis trägt.

​

Rechnungen freigeben

Ob eine importierte Rechnung automatisch freigegeben wird und dabei eine offizielle Rechnungsnummer erhält, steuerst du über die Einstellung Rechnung nach Import freigeben aus Schritt 2: Konfiguration — einmal für den gesamten Import festgelegt, nicht je Zeile. Die automatische Freigabe gilt nur für Rechnungen, die noch keine Rechnungsnummer haben; Rechnungen mit bereits vorhandener Rechnungsnummer gibt Xentral nicht automatisch frei.

​

Schritt 1: Allgemein

Du findest den CSV-Import im Menü Automatisierung > CSV-Import. Klicke dort auf + Hinzufügen, um den Import-Assistenten zu starten.

ImportAssistent_Menupfad_Hinzufuegen.png

Du befindest dich zunächst im Teil Allgemein. Dort legst du fest:

ImportAssistent_Schritt1Allgemein_Einmalig_Rechnungen.png
  • Datentyp: Der Datentyp, den du importieren möchtest.

  • Name: Damit du den Import später wiederfindest und wiederverwenden kannst.

  • Beschreibung: Optional.

  • Import-Modus: Einmalig oder Wiederkehrend.

​

Einmaliger Import

Wähle diesen Modus, wenn du eine Datei einmalig, z. B. bei erstmaliger Einrichtung des Systems oder einer Funktion, hochladen möchtest. Der Import wird einmalig manuell ausgeführt: Du lädst dafür eine Datei hoch und startest den Import selbst.

​

Wiederkehrender Import

Wähle diesen Modus, wenn der Import regelmäßig automatisch ausgeführt werden soll, ohne dass du die Datei jedes Mal manuell hochlädst. Xentral holt sich die Datei stattdessen selbstständig von einem FTP-Server ab. Zusätzlich zu den Feldern im Abschnitt Allgemein legst du bei wiederkehrenden Importen fest:

ImportAssistent_Schritt1Allgemein_Wiederkehrend.png

Zeitplan:

Hier definierst du, wann der Import automatisch ausgeführt wird.

  • Intervall: Stündlich, Täglich, Wöchentlich oder Monatlich.

  • Wochentage: Bei Täglich oder Wöchentlich wählst du einen oder mehrere Wochentage aus, an denen der Import laufen soll.

  • Uhrzeit: Die Uhrzeit, zu der der Import gestartet wird.

Xentral zeigt dir direkt an, wann der nächste Lauf stattfindet.

FTP-Verbindung:

Dieser Abschnitt definiert, woher Xentral die Datei holt und was danach mit ihr passiert.

  • FTP-Server: Wähle einen bereits hinterlegten FTP-Server aus oder lege über + Neuer Server einen neuen an.

  • Dateiname: Der Dateiname bzw. ein Muster dafür. Verwende einen Stern (*) als Platzhalter für beliebige Zeichen, zum Beispiel preise_*, um sowohl preise_2024 als auch preise_alt zu finden.

  • Dateien auflisten: Zeigt dir die auf dem FTP-Server gefundenen Dateien an, die auf dein Muster passen. Wähle daraus die Datei aus, die du importieren möchtest.

  • Archivierungsstrategie: Legt fest, was mit der Datei auf dem FTP-Server nach einem erfolgreichen Import passiert:

    • Behalten: Die Datei verbleibt nach dem Import an derselben Stelle.

    • Archivieren: (empfohlen) Die Datei wird nach dem Import in einen Archiv-Ordner verschoben.

    • Löschen: Die Datei wird nach dem Import gelöscht.

Klicke auf Weiter, um mit der Konfiguration fortzufahren.

​

Schritt 2: Konfiguration

Nachdem du im Assistenten auf Weiter geklickt hast, befindest du dich im Teil Konfiguration. Dieser Schritt zeigt Einstellungen, die spezifisch für den gewählten Datentyp sind. Du legst sie einmal für den gesamten Import fest, bevor du eine Datei hochlädst.

ImportAssistent_Schritt2Konfiguration_Rechnungen.png
  • Projekt: Das Standardprojekt, das verwendet wird, wenn eine Zeile in deiner Datei keine eigene Projekt-Angabe enthält.

  • Rechnung nach Import freigeben: Ein Schalter, der steuert, ob Rechnungen direkt nach dem Import automatisch freigegeben werden und dabei eine offizielle Rechnungsnummer erhalten.

Klicke auf Weiter, um mit dem Datei-Upload fortzufahren.

​

Schritt 3: Datei hochladen

Nachdem du im Assistenten auf Weiter geklickt hast, befindest du dich im Teil Datei hochladen. Lade deine vorbereitete CSV-Datei hoch. Danach siehst du:

Hinweis

Eine CSV-Datei darf maximal 64MB groß sein und 50.000 Datensätze enthalten. Diese Begrenzung stellt einen performanten Import sicher. Möchtest du mehr Daten importieren, teile sie auf mehrere Dateien auf und importiere diese nacheinander.

ImportAssistent_Schritt3DateiHochladen_Rechnungen.png
  • Gruppenbezeichner: Wähle hier, welche Spalte deiner Datei Zeilen desselben Belegs kennzeichnet, z. B. die Rechnungsnummer.

  • Erweiterte Einstellungen: Passe Trennzeichen, Textbegrenzer oder Encoding an, falls deine Datei nicht korrekt angezeigt wird.

  • KI-Funktionen: Aktiviere diesen Schalter, um KI-gestütztes Mapping, KI-gestützte Transformationen und den KI-Chat für diesen Import nutzen zu können.

  • Mapping übernehmen: Aktiviere diesen Schalter, um bestehende Zuordnungen aus der Import-/Exportzentrale zu übernehmen.

  • Vorschau: Xentral zeigt dir die eingelesenen Zeilen und Spalten deiner Datei, bevor du mit dem Mapping beginnst.

Klicke auf Mit dem Mapping starten, um fortzufahren.

​

Schritt 4: Mapping durchführen

Xentral zeigt dir alle Felder, die für den gewählten Datentyp zur Verfügung stehen, mit denselben Bezeichnungen, die du auch sonst in Xentral siehst.

Wichtig

Hast du beim Datei-Upload die KI-Funktionen aktiviert, schlägt Xentral automatisch per KI ein Mapping zwischen den Spalten deiner Datei und den Xentral-Feldern vor. Die Meldung "Die KI hat die Feldzuordnungen automatisch vorgeschlagen. Prüfe sie und passe sie bei Bedarf an." zeigt dir, dass der Vorschlag bereit ist. Du musst die Spalten in diesem Fall nicht von Hand zuordnen — prüfe das vorgeschlagene Mapping und passe es bei Bedarf an, bevor du fortfährst.

Neben jedem Spaltentitel stehen dir zwei Schaltflächen zur Verfügung:

ImportAssistent_Schritt4Mapping_Rechnungen.png
  • (1) Spaltenzuordnung: Klicke darauf, um der Spalte ein Feld aus deiner CSV-Datei zuzuordnen oder einen benutzerdefinierten Text festzulegen.

  • (2) Transformer: Klicke darauf, um die Daten dieser Spalte vor dem Import anzupassen oder zu bereinigen.

​

Spaltenzuordnung setzen und ändern

Klicke auf (1), um der Tabellenspalte eine andere Spalte deiner CSV-Datei zuzuordnen. Suche im sich öffnenden Fenster nach der gewünschten CSV-Spalte oder wähle am Ende der Liste Benutzerdefinierter Text aus, um stattdessen einen festen Wert einzutragen, zum Beispiel wenn deine CSV-Datei keine passende Spalte dafür enthält. Die erfolgte Zuordnung wird dir in der Vorschau angezeigt.

Import_Spaltenzuordnung_Rechnungen.png

Zeilen mit einem Validierungsproblem werden markiert, damit du sie vor Abschluss des Imports korrigieren kannst.

​

Daten transformieren

Klicke auf (2), um den Transformer für diese Spalte zu öffnen. Die Anzahl bereits aktiver Regeln siehst du direkt im Titel des Transformers. Dir stehen drei Reiter zur Verfügung:

  • KI: Beschreibe in eigenen Worten, was mit den Daten passieren soll, zum Beispiel „Leerzeichen entfernen und -DE anhängen", und klicke auf Vorschlagen — die KI erstellt dir daraus passende Regeln. Diesen Reiter siehst du nur, wenn du beim Datei-Upload die KI-Funktionen aktiviert hast.

    Import_Transformer_KI.png
  • Editor: Lege eine oder mehrere Regeln manuell fest und wähle je Regel einen Regeltyp aus. Über Regel hinzufügen ergänzt du bei Bedarf weitere Regeln — so kombinierst du mehrere Änderungen bzw. Ersetzungen.

    Import_Transformer_Editor.png
    • HTML entfernen: Entfernt HTML-Tags aus einem String.

      Tipp

      Beispiel: Der Inhalt des Feldes ist "<p>Text</p>", nach dem Transformieren ist er noch "Text".

    • Leerzeichen entfernen: Entfernt Leerzeichen, die vor oder nach dem Inhalt stehen (nicht innerhalb der Zeichenkette).

    • Text ersetzen: Ersetzt eine beliebige Zeichenkette durch eine andere. So kannst du z. B. auch Leerzeichen innerhalb einer Zeichenkette entfernen.

    • Feld anhängen: Hängt eine bestimmte Zeichenfolge an die im Feld vorhandenen Daten an.

    • Wert festlegen: Trägt einen festen Wert in die Spalte ein.

    • Bedingung: Lässt Daten anhand einer vorgegebenen Bedingung eintragen.

      Tipp

      Beispiel: "WENN die Artikelnummer das Präfix 'SW' hat, DANN trage in den Verkaufspreis den Wert 0 ein."

  • JSON: Trage oder bearbeite die Regeln direkt im JSON-Format, zum Beispiel um ein bestehendes Regelwerk einzufügen. Über Erklären lässt du dir ein bestehendes Regelwerk von der KI in Textform erklären.

    Import_Transformer_JSON.png

Bestätige deine Regeln mit Übernehmen. Die Vorschau zeigt dir die angepassten Daten, wie sie in Xentral übernommen werden. Um Regeln später zu ändern oder zu entfernen, öffne den Transformer über (2) erneut.

​

Daten überschreiben

Ergänzend zur regelbasierten Transformation kannst du einzelne Datensätze auch manuell anpassen. Doppelklicke dazu in das zu ändernde Datenfeld, trage den Zielwert ein und bestätige mit der Eingabetaste oder dem grünen Haken.

Eine solche Änderung kannst du per Klick auf den Zurück-Pfeil wieder zurücksetzen.

Warnung

Beachte unbedingt: Leere Zellen in deiner CSV-Datei überschreiben bestehende Daten in Xentral und löschen diese somit im System. Stelle sicher, dass die Importdatei entweder nur die Spalten enthält, die du tatsächlich aktualisieren willst, dass du das Mapping nur für Spalten vornimmst, die angepasst werden sollen, oder dass alle vorhandenen Zellen mit den korrekten Werten gefüllt sind.

​

Schritt 5: Import starten

Sobald dein Mapping keine blockierenden Probleme mehr aufweist, klicke auf Abschließen. Xentral führt eine Datenvalidierung durch. Wurden keine invaliden Daten gefunden, erhältst du eine grüne Erfolgsmeldung und kannst mit Import starten bestätigen:

Import_DatenvalidierungGrun.png

Wichtig

Sind einzelne Datenfelder noch nicht ausreichend zugeordnet, erhältst du stattdessen eine rote Meldung. Brich in diesem Fall ab und korrigiere die genannten Datensätze, bevor du es erneut versuchst.

Import_DatenvalidierungRot.png
  • Der Import läuft im Hintergrund, du kannst die Seite also schließen.

  • Kehre jederzeit zur CSV-Import-Übersicht zurück, um den Fortschritt und das Reporting je Zeile zu verfolgen, inklusive etwaiger Fehler- oder Warnmeldungen.

Anmerkung

Trittst du beim Import auf eine Fehler- oder Warnmeldung, findest du Ursache und Abhilfe im Artikel CSV-Import Fehlermeldungen und Abhilfe.

​

Import-Ergebnis und Warnungen

Nach der Verarbeitung jeder Rechnung siehst du im Reporting des CSV-Imports eines der folgenden Ergebnisse:

Status

Bedeutung

Importiert

Die Rechnung wurde ohne Probleme angelegt und, falls konfiguriert, freigegeben.

Importiert, mit Warnung

Die Rechnung wurde angelegt, aber ein referenzierter Verkaufsauftrag oder ein Projekt konnte nicht gefunden werden. Details dazu stehen in der Warnmeldung.

Importfehler

Die Rechnung konnte nicht importiert werden — meist, weil Xentral keine Kundenadresse ermitteln konnte (z. B. "No customer found"), eine Artikelnummer nicht passte oder keine gültigen Preisangaben für eine Position vorlagen.

Hat dies deine Frage beantwortet?