Dateiablage
Rechnungen als Dateien übergeben.
- Noch nicht in der Sandbox
In einfachen Worten
Die Dateiablage ist für ERP-Systeme gedacht, die nur Dateien schreiben können: Diese legen Rechnungen in einem Ordner ab, und der Service gibt die Ergebnisse als Dateien im selben Ordner zurück. Das erspart einem Kunden den Bau einer API-Anbindung. Der Service überwacht einen Ordner auf dem Rechner, auf dem er läuft. In der gehosteten Sandbox ist sie nicht aktiviert, und sichere Dateiübertragung und Cloud-Speicher sind nicht gebaut.
Ein ERP, das nur Dateien schreiben kann, kann Rechnungen über einen Ordner übergeben. Der Service überwacht den Ordner und behandelt jede Datei als Übermittlung: eine JSON-Datei wie POST /invoices, eine XML-Datei wie POST /invoices/xml. Die Ergebnisse kommen als Dateien im selben Ordner zurück.
Hinweis
Noch nicht in der Sandbox
Die Dateiablage überwacht einen lokalen Ordner. In der gehosteten Sandbox ist sie nicht aktiviert. Es gibt kein SFTP und keinen Objektspeicher; beides würde nur gebaut, wenn ein Pilot es braucht.
Einrichten
Der Ordner wird bei der Installation des Service festgelegt. Der Service prüft ihn einmal pro Sekunde und überwacht nichts, wenn kein Ordner festgelegt ist. Eine Datei durchläuft denselben Eingang wie ein API-Aufruf; für eine Abweisung gelten deshalb dieselben Gründe.
Die Datei benennen
| Datei | Behandelt als |
|---|---|
INVOICE-REF.json | POST /invoices. Der Inhalt ist der JSON-Body dieses Aufrufs (siehe JSON übermitteln). Hat der Body eine invoice_ref, muss sie dem Dateinamen ohne .json entsprechen. |
INVOICE-REF.ROUTE.xml | POST /invoices/xml. ROUTE ist DE-XRECHNUNG, PEPPOL, FR-PA, PL-KSEF oder RO-EFACTURA. Der Inhalt ist die Rechnungsdatei (siehe XML übermitteln). |
- Eine Rechnungsreferenz hat bis zu 100 Zeichen und enthält kein
/oder\. - Eine Datei über 5 MB wird abgewiesen.
- Ein Name, der mit einem Punkt beginnt,
..enthält oder zu keinem der beiden Muster passt, bleibt unangetastet. - Als
Idempotency-Keydienen die ersten 32 Zeichen des SHA-256-Hashs der Datei. Eine identische Datei erneut abzulegen, ist eine Wiederholung, keine zweite Rechnung.
Was zurückkommt
drop/
DE-4711.json you write this
status/
DE-4711-1.json one file per status event
DE-4712-error.json the answer to a refused file
done/
DE-4711.json an accepted file moves here
failed/
DE-4712.json a refused file moves hereEine angenommene Datei wird nach done/ verschoben. Die Ereignisse der Rechnung werden nach status/ geschrieben, eine Datei je Ereignis, benannt INVOICE-REF-<sequence>.json. Jede Datei entspricht einem Eintrag der Antwort von GET /invoices/{id}/events. Sie enthalten den Hash der Rechnung und keinen Rechnungsinhalt.
{
"occurred_at": "2026-10-02T17:17:55.857Z",
"sequence": 1,
"environment": "sandbox",
"invoice_ref": "CAPTURE-JSON-1790961440",
"document_sha256": "3b41395db498666777b74f9f5b9fae82871720304bc25bbb590e25b7b75ea1d4",
"event_id": "evt_200c0def79ed702df81d702f",
"country_route": "DE-XRECHNUNG",
"invoice_number": "CAPTURE-JSON-1790961440",
"status": "validated"
}Die Ereignisse, die existieren, wenn die Datei angenommen wird, werden sofort geschrieben. Jedes spätere Ereignis wird geschrieben, sobald es eintrifft, bis die Rechnung einen Endzustand erreicht (accepted, delivered, rejected, validation_failed, dead_letter oder cancelled) oder 30 Tage vergangen sind.
Eine abgewiesene Datei wird nach failed/ verschoben, und status/INVOICE-REF-error.json enthält die Antwort, die die API gegeben hätte. Für eine Datei, die keine Rechnung ist, ist das die 422-Antwort unten. Korrigieren Sie die Daten und legen Sie die Datei unter demselben Namen erneut ab.
{
"type": "https://eurinvoice.com/problems/validation-failed",
"title": "The invoice did not pass the checks",
"errors": [
{
"code": "EI-XML-TYPE",
"fix_hint": "Send the invoice itself, in the format agreed for the route.",
"who_fixes": "erp",
"source": "XML-safety",
"message": "The file is not an invoice in a format this route accepts. Please send the invoice in the agreed format."
}
],
"status": 422
}Was es hier nicht gibt
- SFTP und Objektspeicher.
- Eine Möglichkeit, die
inv_-ID einer angenommenen Rechnung aus dem Ordner zu lesen. Die Statusdateien enthalteninvoice_refundinvoice_number.