Skip to main content
Nutzungsereignisse sind die Grundlage für nutzungsbasierte Abrechnung. Es gibt zwei Möglichkeiten, Ereignisse zu senden: über CSV-Dateien oder direkt über die REST API.

Übersicht

Für einmalige Imports historischer Daten oder Backfill-Szenarien verwende CSV Import. Für kontinuierliche, Echtzeit-Event-Erfassung aus Anwendungen verwende die API.

CSV Import

CSV Format

Die CSV-Datei muss folgende Spalten enthalten:
Die Datei muss im UTF-8 Format vorliegen. Die properties-Spalte muss ein gültiges JSON-Objekt enthalten. Maximale Dateigröße: 10 MB.

Import über die Benutzeroberfläche

  1. Navigiere zur Seite Verbrauchsdaten
  2. Klicke auf das Aktionen-Dropdown im Header
  3. Wähle CSV Import
  4. Im Dialog:
    • Klicke auf den Upload-Bereich oder ziehe eine CSV-Datei hinein
    • Wähle die CSV-Datei aus
    • Klicke auf Importieren
CSV Import Dialog
Nach dem Import:
  • Die Events werden asynchron verarbeitet
  • Die Tabelle wird automatisch aktualisiert
  • Bei Fehlern wird eine Fehlermeldung angezeigt

Beispiel CSV

JSON-Objekte in der properties-Spalte müssen mit doppelten Anführungszeichen escaped werden ("").

API Import

Nutzungsereignisse können programmatisch über die REST API gesendet werden. Unterstützt einzelne Events oder Batch-Import (bis zu 1000 Events pro Anfrage).

Authentifizierung

Der API-Schlüssel muss im Request-Header übergeben werden:

Einzelnes Event senden

Endpoint: POST /api/usage-events

Batch Import

Bis zu 1000 Events können in einem Request gesendet werden:

Antwortformat

Erfolgreiche Antwort (202 Accepted):
Antwort mit Fehlern:
HTTP Status Codes:

Event-Struktur

Erforderliche Felder

Jedes Nutzungsereignis muss folgende Felder enthalten:

Idempotenz

Events mit derselben transactionId werden nur einmal verarbeitet. Bei wiederholtem Senden wird das bereits existierende Event zurückgegeben (HTTP 200 statt 201).
Verwende eindeutige, deterministische Transaction IDs. Beispiel: UUID oder ${customerId}-${timestamp}-${eventName}

Properties

Die properties können beliebige JSON-Objekte enthalten. Typische Beispiele: API Call Event:
Storage Event:
Transaction Event:

Best Practices

Timestamps

Verwende immer UTC-Zeitstempel im ISO 8601 Format.

Batch-Größe

Für optimale Performance:
  • Kleine Batches: 10-100 Events für Echtzeit-Erfassung
  • Große Batches: 500-1000 Events für Bulk-Import
  • Vermeide: Sehr kleine Batches (< 10) bei hohem Volumen

Rate Limiting

Respektiere Rate Limits:
  • Empfohlen: Maximal 10 Requests pro Sekunde
  • Burst: Kurzzeitig bis zu 50 Requests pro Sekunde
  • Vermeide: Längerfristige Überschreitung der Limits

Fehlerbehebung

CSV Import schlägt fehl

Problem: “Ungültiges CSV-Format” Lösung:
  1. Prüfe, ob alle erforderlichen Spalten vorhanden sind
  2. Stelle sicher, dass die Datei UTF-8 kodiert ist
  3. Validiere JSON in der properties-Spalte
  4. Prüfe, ob Anführungszeichen korrekt escaped sind
Problem: “Datei zu groß” Lösung:
  • Teile die CSV-Datei in kleinere Dateien auf (max. 10 MB)
  • Importiere die Dateien nacheinander

API Import Fehler

Problem: 401 Unauthorized Lösung:
  • Prüfe, ob der API-Schlüssel korrekt im Header übergeben wird
  • Stelle sicher, dass der API-Schlüssel aktiv ist
  • Prüfe die Berechtigungen des API-Schlüssels
Problem: 400 Bad Request Lösung:
  • Validiere die Event-Struktur
  • Prüfe, ob alle erforderlichen Felder vorhanden sind
  • Stelle sicher, dass customerId eine gültige UUID oder externalId ist
  • Prüfe das timestamp-Format (ISO 8601)
Problem: Events werden nicht angezeigt Lösung:
  1. Prüfe die Antwort auf Fehler (errors Array)
  2. Validiere transactionId (möglicherweise Duplikat)
  3. Prüfe Filter in der Events-Tabelle
  4. Warte kurz, da Events asynchron verarbeitet werden

Verwandte Dokumentation