Status: 404 Not Found (wenn Profil nicht gefunden)
2. Kundenprofile abrufen (Liste)
Ruft mehrere Kundenprofile mit Filter- und Paginations-Optionen ab.
Endpunkt
Query-Parameter
Parameter
Typ
Pflicht
Beschreibung
customerIds
string (comma-separated)
Nein
Filter nach Kunden-ID(s), kommagetrennt
levelId
string
Nein
Filter nach Level-ID
minPoints
integer
Nein
Mindestanzahl Punkte
maxPoints
integer
Nein
Maximale Anzahl Punkte
limit
integer
Nein
Anzahl Ergebnisse (Standard: 20)
offset
integer
Nein
Offset für Pagination (Standard: 0)
sortBy
string
Nein
Sortierfeld (Standard: 'points')
sortDirection
string
Nein
Sortierrichtung: 'ASC' oder 'DESC' (Standard: 'DESC')
Beispiel-Requests
Alle Profile mit mindestens 100 Punkten:
Profile bestimmter Kunden:
Profile eines bestimmten Levels:
Paginierte Ergebnisse:
Sortiert nach Punkten (aufsteigend):
Response
Status: 200 OK
3. Kundentransaktionen abrufen
Ruft alle Transaktionen eines bestimmten Kunden ab.
Endpunkt
Parameter
Parameter
Typ
Pflicht
Beschreibung
customerId
string (path)
Ja
Die ID des Kunden
Query-Parameter
Parameter
Typ
Pflicht
Beschreibung
received
boolean
Nein
Filter nach empfangenen Transaktionen (true/false)
refund
boolean
Nein
Filter nach erstatteten Transaktionen (true/false)
expired
boolean
Nein
Filter nach abgelaufenen Transaktionen (true/false)
orderId
string
Nein
Filter nach Bestell-ID
minValue
integer
Nein
Mindestpunktwert
maxValue
integer
Nein
Maximalpunktwert
limit
integer
Nein
Anzahl Ergebnisse (Standard: 20)
offset
integer
Nein
Offset für Pagination (Standard: 0)
sortBy
string
Nein
Sortierfeld (Standard: 'createdAt')
sortDirection
string
Nein
Sortierrichtung: 'ASC' oder 'DESC' (Standard: 'DESC')
Beispiel-Requests
Alle Transaktionen eines Kunden:
Nur empfangene Transaktionen:
Transaktionen einer bestimmten Bestellung:
Nur positive Transaktionen (Gutschriften):
Nur negative Transaktionen (Abzüge):
Paginierte Ergebnisse:
Response
Status: 200 OK
4. Punkte hinzufügen
Fügt Punkte für einen bestimmten Kunden hinzu. Nur positive Werte sind erlaubt.
Endpunkt
Request Body
Parameter
Typ
Pflicht
Beschreibung
customerId
string (UUID)
Ja
Die ID des Kunden
points
integer
Ja
Anzahl der Punkte (muss positiv sein, größer als 0)
description
string
Nein
Beschreibung der Transaktion (Standard: "Manuell gesetzt via API")
salesChannelId
string (UUID)
Nein
ID des Sales Channels
orderId
string (UUID)
Nein
ID der Bestellung (falls die Punkte mit einer Bestellung verknüpft sind)
Beispiel-Request
Punkte hinzufügen:
Response
Status: 200 OK
Status: 400 Bad Request (bei ungültigen Parametern)
Status: 404 Not Found (wenn Kunde nicht gefunden)
Hinweise
Punkte werden über releasePoints verarbeitet, was das Profil automatisch aktualisiert und Level-Änderungen berücksichtigt.
Nur positive Werte (größer als 0) sind erlaubt.
Wenn der Kunde noch kein Profil hat, wird automatisch eines erstellt.
Für jede Punkte-Änderung wird eine Transaktion erstellt, die in der Historie sichtbar ist.
5. Punkte abziehen
Zieht Punkte von einem bestimmten Kunden ab. Nur positive Werte sind erlaubt (werden intern als negative Transaktion gespeichert).
Endpunkt
Request Body
Parameter
Typ
Pflicht
Beschreibung
customerId
string (UUID)
Ja
Die ID des Kunden
points
integer
Ja
Anzahl der abzuziehenden Punkte (muss positiv sein, größer als 0)
description
string
Nein
Beschreibung der Transaktion (Standard: "Manuell abgezogen via API")
salesChannelId
string (UUID)
Nein
ID des Sales Channels
orderId
string (UUID)
Nein
ID der Bestellung (falls die Punkte-Abzüge mit einer Bestellung verknüpft sind)
Beispiel-Request
Punkte abziehen:
Response
Status: 200 OK
Status: 400 Bad Request (bei ungültigen Parametern oder unzureichenden Punkten)
Status: 404 Not Found (wenn Kunde oder Profil nicht gefunden)
Hinweise
Punkte werden direkt vom Profil abgezogen. Das Level wird automatisch neu berechnet.
Nur positive Werte (größer als 0) sind erlaubt. Der Wert wird intern als negative Transaktion gespeichert.
Der Endpunkt prüft, ob der Kunde genügend Punkte hat. Bei unzureichenden Punkten wird ein Fehler zurückgegeben.
Der Kunde muss bereits ein Profil haben. Es wird kein Profil erstellt, wenn keines existiert.
Für jeden Punkte-Abzug wird eine Transaktion mit negativem Wert erstellt, die in der Historie sichtbar ist.
Datenstrukturen
Profile-Objekt
Das Profil-Objekt enthält folgende Felder:
Feld
Typ
Beschreibung
id
string (UUID)
Eindeutige ID des Profils
customerId
string (UUID)
ID des zugehörigen Kunden
points
integer
Aktuelle Anzahl der Punkte
pointsExpirationDate
string (date) | null
Ablaufdatum der Punkte (falls vorhanden)
customFieldRewards
array | null
Custom Field Rewards
setBirthday
boolean
Ob Geburtstag gesetzt ist
newsletter
boolean
Newsletter-Abonnement Status
lastPointsReceived
string (datetime) | null
Datum und Uhrzeit, wann der Kunde zuletzt Punkte erhalten hat
createdAt
string (datetime)
Erstellungsdatum des Profils
updatedAt
string (datetime)
Letztes Aktualisierungsdatum
Hinweis: lastPointsReceived ist null, wenn der Kunde noch nie Punkte erhalten hat oder wenn keine Transaktion mit positivem Wert gefunden werden kann.
Level-Objekt
Previous Level-Objekt
Enthält alle Felder des Level-Objekts plus:
Next Level-Objekt
Enthält alle Felder des Level-Objekts plus:
Customer-Objekt
Transaction-Objekt
Order-Objekt (in Transaction)
Fehlerbehandlung
Alle Endpunkte können folgende Fehlerantworten zurückgeben:
400 Bad Request
404 Not Found
500 Internal Server Error
1
Hinweise: Pagination
Verwenden Sie limit und offset für große Datensätze. Die Standard-Limit beträgt 20 Einträge.
2
Hinweise: Sortierung
Standardmäßig werden Ergebnisse nach createdAt (Transaktionen) bzw. points (Profile) in absteigender Reihenfolge sortiert.
3
Hinweise: Filter-Kombinationen
Mehrere Filter können kombiniert werden, um präzise Ergebnisse zu erhalten.
4
Hinweise: Assoziationen
Order-, Customer- und SalesChannel-Informationen werden nur zurückgegeben, wenn sie verfügbar sind. Prüfen Sie auf null-Werte.
5
Hinweise: Punkte-Werte
In Transaktionen sind positive Werte Gutschriften und negative Werte Abzüge.
6
Hinweise: UUID-Format
Alle IDs sind UUIDs im Binärformat (0x...). Stellen Sie sicher, dass Ihre Client-Implementierung diese korrekt verarbeitet.
Beispiele für häufige Use Cases
Alle Profile eines bestimmten Levels abrufen:
Top-Kunden nach Punkten abrufen:
Alle Transaktionen eines Kunden für eine Bestellung:
Nur aktive (nicht abgelaufene) Transaktionen:
Alle Transaktionen mit Gutschriften (positive Werte):
Punkte für einen Kunden hinzufügen:
Punkte von einem Kunden abziehen:
6. Verfügbare Aktionen abrufen
Ruft alle Aktionen ab, die der Kunde noch ausführen kann, um weitere Punkte zu erhalten.
Endpunkt
Parameter
Parameter
Typ
Pflicht
Beschreibung
customerId
string (path)
Ja
Die ID des Kunden
Query-Parameter
Parameter
Typ
Pflicht
Beschreibung
salesChannelId
string (UUID)
Nein
ID des Sales Channels (falls nicht vom Kunden abgeleitet werden kann)
Response
Status: 200 OK
Status: 404 Not Found (wenn Kunde oder Profil nicht gefunden)
Verfügbare Aktionstypen
Typ
Beschreibung
newsletter
Newsletter-Abonnement
birthday
Geburtstag im Profil setzen
customField
Custom Field im Profil ausfüllen
Response-Felder
Feld
Typ
Beschreibung
type
string
Typ der Aktion (newsletter, birthday, customField)
name
string
Name der Aktion
points
integer
Anzahl der Punkte, die für diese Aktion vergeben werden
completed
boolean
Ob die Aktion bereits ausgeführt wurde (aber noch nicht belohnt)
description
string
Beschreibung der Aktion
fieldFilled
boolean
(Nur bei customField) Ob das Feld bereits ausgefüllt ist
Hinweise
Newsletter: Wird nur angezeigt, wenn der Kunde noch kein Newsletter-Abonnement hat und noch keine Newsletter-Punkte erhalten hat.
Geburtstag: Wird nur angezeigt, wenn der Geburtstag noch nicht gesetzt wurde und noch keine Geburtstags-Punkte erhalten wurden.
Custom Fields: Werden nur angezeigt, wenn die Felder konfiguriert sind und noch nicht belohnt wurden. Die Aktion wird auch angezeigt, wenn das Feld bereits ausgefüllt ist, aber noch keine Belohnung erhalten hat.