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.Documentation Index
Fetch the complete documentation index at: https://docs.fynn.eu/llms.txt
Use this file to discover all available pages before exploring further.
Übersicht
| Methode | Verwendung | Limit |
|---|---|---|
| CSV Import | Bulk-Import historischer Daten | Bis zu 10 MB pro Datei |
| API Import | Echtzeit-Event-Erfassung | Bis zu 1000 Events pro Request |
CSV Import
CSV Format
Die CSV-Datei muss folgende Spalten enthalten:| Spalte | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
transaction_id | string | Ja | Eindeutige Transaktions-ID für Idempotenz |
event_name | string | Ja | Name des Events (z.B. “api_call”, “storage_used”) |
timestamp | ISO 8601 | Ja | Event-Zeitstempel (z.B. “2026-01-13T10:30:00Z”) |
customer_id | string | Ja | Kunden-Identifier (Fynn-UUID oder externalId) |
properties | JSON | Ja | Event-Eigenschaften als JSON-Objekt |
Import über die Benutzeroberfläche
- Navigiere zur Seite Verbrauchsdaten
- Klicke auf das Aktionen-Dropdown im Header
- Wähle CSV Import
- Im Dialog:
- Klicke auf den Upload-Bereich oder ziehe eine CSV-Datei hinein
- Wähle die CSV-Datei aus
- Klicke auf Importieren

- 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):| Code | Bedeutung |
|---|---|
202 | Events wurden akzeptiert (kann teilweise Fehler enthalten) |
400 | Ungültige Anfrage - Validierungsfehler |
401 | Nicht autorisiert - Ungültiger API-Schlüssel |
Event-Struktur
Erforderliche Felder
Jedes Nutzungsereignis muss folgende Felder enthalten:Idempotenz
Events mit derselbentransactionId werden nur einmal verarbeitet. Bei wiederholtem Senden wird das bereits existierende Event zurückgegeben (HTTP 200 statt 201).
Properties
Dieproperties können beliebige JSON-Objekte enthalten. Typische Beispiele:
API Call 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:- Prüfe, ob alle erforderlichen Spalten vorhanden sind
- Stelle sicher, dass die Datei UTF-8 kodiert ist
- Validiere JSON in der
properties-Spalte - Prüfe, ob Anführungszeichen korrekt escaped sind
- 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
400 Bad Request
Lösung:
- Validiere die Event-Struktur
- Prüfe, ob alle erforderlichen Felder vorhanden sind
- Stelle sicher, dass
customerIdeine gültige UUID oderexternalIdist - Prüfe das
timestamp-Format (ISO 8601)
- Prüfe die Antwort auf Fehler (
errorsArray) - Validiere
transactionId(möglicherweise Duplikat) - Prüfe Filter in der Events-Tabelle
- Warte kurz, da Events asynchron verarbeitet werden