Zum Inhalt

FiBu CSV/ZIP-Schnittstelle

1. Zweck

Der CSV/ZIP-Export ist eine transportneutrale Übergabe gebuchter Fremdrechnungen. Ein ZIP enthält Rechnungskopf, Lieferanten-Snapshot, alle Fahrzeugpositionen, Manifest und sämtliche verifizierten Originalbelege.

2. Fremdrechnungsablauf in FLEET Mira

  1. Lieferant und Kostenarten anlegen.
  2. Rechnungsentwurf mit Nummer/Datum, Summen und Zahlungsdaten anlegen.
  3. Eine oder mehrere fahrzeugbezogene Kosten-/Gutschriftpositionen erfassen.
  4. Empfangene Originale hinzufügen; das Belegarchiv lädt hoch und verifiziert jeden Hash.
  5. Brutto-/Splitdifferenz auf exakt null Cent bringen.
  6. Rechnung prüfen und buchen.
  7. Einmal exportieren oder per REST übertragen. Korrekturen über Storno/Gutschrift, niemals Änderung gebuchter Zeilen.
flowchart LR
    H[Rechnungskopf] --> P[Fahrzeugpositionen]
    P --> D[Originalbelege]
    D --> V[Cloudverifikation]
    V --> C[Centgenaue Prüfung]
    C --> B[Buchung]
    B --> Z[CSV/ZIP-Export]

3. Archivaufbau

Dateiname: Accounting_<Belegnummer>_<Rechnungs-ID>.zip (ungültige Dateisystemzeichen werden ersetzt).

manifest.json
invoice.csv
supplier.csv
positions.csv
documents/
  <Dokument-ID>_<Originaldateiname>

CSV ist UTF-8 mit BOM, Semikolontrennung und CRLF. Erste Zeile: stabile Feldnamen. Trennzeichen, Anführungszeichen oder Zeilenumbrüche werden RFC-4180-gequotet.

4. manifest.json

Feld Bedeutung
format Legacy-Vertragstoken DLTNG-ACCOUNTING-EXPORT
version Exportformatversion
idempotency_key stabiler Dublettenvermeidungsschlüssel
invoice_id Rechnungs-UUID von FLEET Mira
documents[] geordnete Archivnamen der Originalbelege

5. invoice.csv

Genau eine Datenzeile.

Feld Bedeutung/Funktion
id unveränderliche Rechnungs-UUID
document_type INVOICE oder CREDIT_NOTE
correction_of_invoice_id korrigierte Rechnung, optional
document_number Lieferanten-Belegnummer
document_date ISO-Belegdatum
delivery_date Leistungs-/Lieferdatum, optional
delivery_note_number Lieferscheinnummer, optional
cost_center Kostenstelle, optional
payable_until Fälligkeit
payment_term_days Nettozahlungsziel
discount_term_days Skontofrist
discount_rate_bp Skonto in Basispunkten
net_cents deklarierter Nettobetrag
tax_cents deklarierte Umsatzsteuer
gross_cents berechnet Netto + Steuer
currency aktuell EUR
status muss BOOKED sein
booked_at_utc, booked_by Buchungsnachweis
created_at_utc, updated_at_utc technische Historie
description, note optionale Fachtexte

6. supplier.csv

Genau ein Snapshot.

Feld Bedeutung/Funktion
id Lieferanten-UUID
supplier_number interne Lieferantennummer
name Name
creditor_number FiBu-Kreditorennummer
street, postal_code, city, country Postanschrift
tax_id Steuer-/USt-ID
phone, email validierte Kontaktdaten
payment_term_days Lieferantenstandard

Es handelt sich um den aktuellen Stammsnapshot zum Export; Rechnungs-ID und Originale bleiben Auditanker.

7. positions.csv

Eine Zeile je aktiver Rechnungsposition.

Feld Bedeutung/Funktion
id Positions-UUID
invoice_id Rechnungs-UUID
vehicle_id Fahrzeug-UUID
vehicle_internal_number interne Fuhrparknummer
vehicle_registration Kennzeichen-Snapshot
vehicle_vin FIN-Snapshot
cost_category_id, cost_category_code, cost_category_name Kostenklassifikation
entry_type COST oder CREDIT
description Buchungstext
valid_from, valid_to, document_date bei Rechnungspositionen das Belegdatum
net_cents, tax_cents, gross_cents Centbeträge
tax_rate_bp USt in Basispunkten
variable bei Rechnungspositionen immer wahr
note optionaler Text

Für den Vergleich zählen Kosten positiv, Gutschriften negativ. Bei Gutschriftrechnung wird das Vorzeichen des Rechnungskopfs normalisiert.

8. Originalbelege

Enthalten sind nur lokal verifizierte Originale. Bytes müssen zum gespeicherten SHA-256 passen; erzeugte Vorschauen ersetzen nie XML-/Hybridoriginale. Das ZIP ist Übergabepaket, nicht führendes Aufbewahrungsarchiv; dieses bleibt das lokale Finanzarchiv. Ein externes Backup ist optional.

9. Prüfregeln

  • gross_cents = net_cents + tax_cents;
  • vorzeichenbehaftete Summe aktiver Positionen entspricht Rechnungsbrutto;
  • jede Position referenziert genau ein Fahrzeug;
  • jedes Manifestdokument existiert unter documents/;
  • Dublette aus Lieferant/Nummer/Datum oder Dokumenthash benötigt Adminfreigabe vor Buchung;
  • je Idempotenzschlüssel höchstens ein erfolgreicher Export.

10. Audit und Importhinweise

FLEET Mira auditiert Start/Ergebnis, Rechnungs-/Dokument-IDs und Korrelations-ID, nicht den Beleginhalt. Importer müssen Manifestversion prüfen, Path Traversal verhindern, transaktional/staged verarbeiten, Idempotenzschlüssel speichern und einen Abgleich mit Rechnung/FiBu-ID liefern.

11. Kompatibilität

Konsumenten ignorieren unbekannte additive Spalten. Entfernen/Umbenennen, Typ- oder Vorzeichenänderung erfordert neue Formatversion. DLTNG-... bleibt technische Legacy-Kennung.