Senden und Empfangen per SFTP
Diese Anleitung beschreibt den Datenaustausch mit xTool per SFTP: Zugang einrichten, Dateien benennen und hochladen, Antwort-XML lesen und eingehende Dokumente empfangen.
Für CSV-Import per SFTP siehe CSV-Import per SFTP und Dokumente importieren.
Was SFTP ist
xTool stellt für Ihre Organisation einen SFTP-Server bereit. Nach der Aktivierung in der Web-App zeigt xTool Host, Port und Benutzername — Sie wählen ein Passwort (oder nutzen einen privaten Schlüssel). Ihr ERP oder Integrationsclient verbindet sich mit diesem Server und legt Dateien im Ordner upload ab; xTool verarbeitet sie und schreibt Status-XML in Antwortordner.
Unterstützte Dateitypen entsprechen dem Web-Upload: XML- und PDF-Rechnungen und -Gutschriften in unterstützten Formaten sowie xTool-CSV für den Import.
Testumgebung
Für Entwicklung und Tests nutzen Sie das Testsystem: https://xtool-test.invoice-portal.de/.
Zugang einrichten
- Melden Sie sich in der xTool-Web-App an und wählen Sie Ihre Organisation.
- Öffnen Sie Schnittstellen → SFTP-Konfiguration (Berechtigung zum Verwalten von Integrationen erforderlich).
- Passwort eingeben und bestätigen, dann SFTP einrichten klicken.
- Warten Sie, bis der Zugang bereit ist (bis zu 2 Minuten). Bei Erfolg wird der Status grün und die Verbindungsdaten (Host, Port, Benutzername) angezeigt.
Passwort nur einmal sichtbar
Das Passwort wird nur bei der Erstellung angezeigt. Bewahren Sie es sicher auf. Bei Verlust setzen Sie ein neues Passwort unter Passwort ändern.
Alternative: Die Anmeldung mit einem privaten Schlüssel wird ebenfalls unterstützt.
Aktionen auf der SFTP-Seite:
| Aktion | Zweck |
|---|---|
| Verbindung testen | SFTP-Anmeldung prüfen und Dateien im Upload-Ordner auflisten. |
| Dateien hochladen | Dateien im Upload-Ordner sofort verarbeiten (ohne auf den nächsten geplanten Lauf zu warten). |
| Passwort ändern | Neues Passwort setzen. |
| Sperren / Entsperren | SFTP-Zugang vorübergehend deaktivieren oder wieder aktivieren. |
| Löschen | SFTP-Zugang vollständig entfernen. |
Siehe Organisation und Benutzer zu Berechtigungen.
Dateinamen-Regeln
Dateinamen dürfen keine Leerzeichen, Umlaute oder andere Sonderzeichen enthalten.
Erlaubte Zeichen: a-z, A-Z, 0-9, ., _, -
Erlaubte Erweiterungen für Rechnungsdateien: .xml, .pdf
Beispiele — korrekt:
INV2020_158.xmlINV2020_212.pdf
Beispiele — falsch:
| Dateiname | Grund |
|---|---|
invoice 20200401-002.xml |
Leerzeichen |
Rechnung_zubehör.xml |
Umlaut |
Rechnung.txt |
Falsche Erweiterung |
Verwenden Sie + als Trennzeichen, wenn Routing- oder Konvertierungsanweisungen im Dateinamen stehen sollen (siehe unten).
Vollständige Rechnungsdateien
Versand per Peppol — IDs in der XML
Wenn Peppol-Teilnehmer-IDs von Absender und Empfänger in der Rechnungs-XML enthalten sind:
Versand per Peppol — IDs im Dateinamen
Wenn Peppol-IDs nicht im Dateiinhalt gesetzt werden können, übergeben Sie sie im Dateinamen:
Jede Peppol-ID besteht aus Electronic Address Scheme (EAS) und ID, getrennt durch einen Punkt.
| EAS | Bedeutung |
|---|---|
0088 |
EAN Location Code (GLN) |
0204 |
Deutsche Leitweg-ID |
9918 |
S.W.I.F.T (IBAN) |
9930 |
Deutsche USt-IdNr. |
Vollständige EAS-Liste: PEPPOL EAS Codelist
Beispiele:
9930.DE279247134— Deutsche USt-IdNr.0204.16067088— Deutsche Leitweg-ID0088.5790000123456— GLN
Beispiel-Dateiname:
Versand per E-Mail
Für Versand per E-Mail statt Peppol:
Beispiel:
Konvertierung vor dem Versand
Fügen Sie einen Formatcode hinzu, um Konvertierung vor Validierung und Versand anzufordern:
| Formatcode | Zielformat |
|---|---|
fa3 |
KSeF FA Invoice 3.0 (XML) |
xrech_ubl |
XRechnung Invoice 3.0 (UBL) |
xrech_cii |
XRechnung Invoice 3.0 (CII) |
peppol_ubl |
PEPPOL BIS Billing 3.0 (UBL) |
peppol_cii |
PEPPOL BIS Billing 3.0 (CII) |
zugferd_en |
Zugferd EN 16931 |
zugferd_de |
Zugferd XRechnung |
Beispiele: 68451+fa3.xml, 68451+xrech_ubl.xml
Mehrdeutiges Routing
Kombinieren Sie nicht Peppol-Teilnehmer-IDs und einen E-Mail-Empfänger im selben Dateinamen. Die Datei wird abgelehnt.
Dateien mit Anhängen
Für XRechnung- oder Peppol-BIS-Rechnungen mit eingebetteten Anhängen gilt diese Namenskonvention:
Rechnungsdatei:
Anhangsdateien:
Erlaubte Anhangs-Erweiterungen: jpg, jpeg, png, pdf, xlsx, ods
Bei Peppol-Routing über den Dateinamen +source+ vor den IDs verwenden:
Bei E-Mail-Routing:
Ordnerstruktur
Mit aktiviertem SFTP-Zugang erhalten Sie folgende Ordnerstruktur. Sie können Dateien in diesen Ordnern anlegen oder löschen, Ordner jedoch nicht löschen.
| Ordner | Zweck |
|---|---|
/upload |
Ausgehende Dateien hier ablegen |
/upload_response/<Rechnungsnummer>/ |
XML-Antworten pro Verarbeitungsschritt |
/rejected |
Dateien mit fehlgeschlagenen Grundprüfungen (+ *_error.txt mit Grund) |
/download |
Eingehende Rechnungen (wenn als Empfänger registriert) |
/download_status |
Status-XML für eingehende Rechnungen |
Sie können mehrere Dateien gleichzeitig hochladen, einschließlich ZIP-Archive oder Ordner. ZIP-Archive werden entpackt; alle Dateien aus Unterordnern (beliebige Tiefe) werden nach upload verschoben und geprüft. Hochgeladene Archive und leere Ordner werden entfernt.
Ausgehende Rechnungen
Upload-Ordner
So senden Sie eine Rechnung per SFTP:
- Gültige Rechnungsdatei mit korrektem Namen in
uploadhochladen. - xTool registriert die Datei und verarbeitet sie (validieren, optional konvertieren, per Peppol oder E-Mail senden).
- Die Datei wird nach der Verarbeitung aus
uploadentfernt. Das Dokument ist im Portal sichtbar.
Beispiel-Dateinamen:
INV2020_158.xmlINV2020_212.pdfinvoice+9930.DE279247134+9930.DE123456789.xmlinvoice+receiver@webware24.de.xml68451+fa3.xml
Upload-Response-Ordner
Pro hochgeladener Datei werden eine oder mehrere Antwort-XML-Dateien in upload_response/<Rechnungsnummer>/ geschrieben — eine pro Verarbeitungsschritt (z. B. Validierung, Konvertierung, Versand).
Antwortdateien heißen:
Beispiele:
FA3_1713000000.xml(Validation Accepted)Inv-20200821-01/FA3_1713000001.xml(KSeF Accepted)
Schlägt Validierung oder Konvertierung fehl, wird eine Antwort mit Status Validation Rejected oder Conversion Rejected und einem <Errors>-Block im selben Unterordner erstellt.
Rejected-Ordner
Dateien, die Grundprüfungen vor der Verarbeitung nicht bestehen (nicht unterstützte Erweiterung, leere Datei, ungültige Zeichen im Namen, unbekannter Formatcode), werden nach rejected verschoben. Pro Datei wird eine Textdatei mit dem Grund erstellt:
Beispiel:
INV2020_144.xmlINV2020_144_1592399949_error.txt
Eingehende Rechnungen
Ist Ihre Organisation als Peppol-Empfänger registriert, können eingehende Rechnungen gemäß Eingehende Datei-Zustellung auf der SFTP-Seite in den Ordner download geliefert werden.
Zustellmodus
| Modus | Verhalten |
|---|---|
| Deaktiviert | Keine Benachrichtigung für empfangene Rechnungen |
| Originaldatei | Empfangene Originaldatei nach download kopieren |
| ZIP-Archiv | Jede empfangene Rechnung als ZIP-Archiv in download speichern |
| Separater Ordner | Jede empfangene Rechnung in eigenem Unterordner unter download speichern |
Zustellinhalt
Sie können wählen, was geliefert wird:
- Originaldatei — empfangene XML (oder Quelldatei)
- PDF-Visualisierung — PDF-Darstellung der Rechnung
- Anhänge — dekodierte Anhänge aus XML oder aus ZUGFeRD-PDF extrahiert
Gelieferte Dateien heißen nach der Dokumentnummer, z. B.:
Download-Status-Ordner
Für jede empfangene Rechnung wird eine Statusdatei in download_status erstellt:
Beispiel: 68451_1713000000.xml
Siehe Empfang per Peppol.
Antwortdateien
Jede Antwort-XML enthält ein <Status>-Element mit dem Ergebnis eines Verarbeitungsschritts.
Mögliche Statuswerte:
- Validation Accepted / Validation Rejected
- Conversion Accepted / Conversion Rejected
- Upload Rejected
- Peppol Accepted / Peppol Rejected
- Email Accepted
- KSeF Accepted / KSeF Rejected
Bei Fehlern enthält die Antwort einen <Errors>-Block mit einem oder mehreren Fehlerelementen.
Ausgehend — Validierung erfolgreich
Ausgehend — Validierung abgelehnt
Bei Validierungsfehlern werden <Sender> und <Receiver> auf 0088:0000000000000 gesetzt.
Ausgehend — Peppol erfolgreich
Eingehend — Download-Status
KSeF-Konvertierungskette (Beispiel)
Laden Sie eine Peppol-BIS-3-Rechnung mit +fa3 im Dateinamen hoch (z. B. 603275+fa3.xml), validiert xTool, konvertiert nach KSeF FA (3) und übermittelt an KSeF. Antwortdateien für jeden Schritt landen in upload_response/<Rechnungsnummer>/. Bei Erfolg enthält die Antwort die KSeF-Referenznummer:
Nach erfolgreicher KSeF-Übermittlung wird das konvertierte FA-(3)-Dokument im selben Unterordner gespeichert, z. B. FA3_1743429240.xml.
Siehe Status-Lebenszyklus.
CSV-Import per SFTP
Legen Sie .csv-Dateien im Ordner upload ab. Jede Datei muss eine Rechnung oder Gutschrift im Format xTool CSV v1.0 enthalten. xTool nutzt denselben Importer wie Web und API.
Dateinamen können +-Routing enthalten (gleiches Muster wie bei XML). Siehe Dokumente importieren — SFTP für CSV-spezifische Regeln und CSV-Importformat für die Spaltenspezifikation.
Nächste Schritte
- CSV importieren — Dokumente importieren
- Unterstützte Formate — Formate
- Per Peppol versenden — Per Peppol versenden
- Per E-Mail versenden — Per E-Mail versenden
- Per Peppol empfangen — Empfang per Peppol
- Hilfe — Support