API
WAMA REST-API-Leitfaden
Integriere deine Systeme mit WAMA über die HTTPS-JSON-API unter https://www.wama.cloud.
Diese Seite beschreibt die Authentifizierung mit API-Schlüsseln, den Multi-Tenant-Kontext der Verkaufsstelle, Paginierung und Fehler. Für Request- und Response-Felder öffne die interaktive OpenAPI-Referenz (Vollbild).
Erste Schritte
- Erstelle einen API-Schlüssel in der WAMA-Web-App (Einstellungen → Integrationen). Bevorzuge Nur Lesen, sofern deine Integration keine Schreibzugriffe braucht.
- Rufe
/api/**mit dem HeaderAuthorization: Bearer <api_key>auf (oderX-Api-Key). - Nutze die interaktive API-Referenz für Request-/Response-Felder.
Basis-URL: https://www.wama.cloud
Tipp
API-Schlüssel sind der unterstützte Weg für Skripte, Partner-Apps und AI / MCP. Verwende nicht den interaktiven Benutzer-Login (E-Mail/Passwort-OAuth) für Machine-Integrationen.
Authentifizierung
API-Schlüssel erstellen
- Melde dich im Browser als Konto-Administrator bei WAMA an (
ROLE_USER/ Administrator). - Öffne Einstellungen → Integrationen.
- Wähle API-Schlüssel erstellen, setze einen Namen, die Verkaufsstelle, den der Schlüssel gebunden wird, den Scope und optional ein Ablaufdatum.
- Kopiere den Schlüssel sofort — das vollständige Geheimnis wird nur einmal angezeigt.
Schlüsselformat:
Speichere ihn wie ein Passwort (Umgebungsvariable oder Secret Manager). Committe niemals Schlüssel in Quellcode oder öffentliche Tickets.
Scopes
| Scope | Wire-Wert | Verhalten |
|---|---|---|
| Nur Lesen | read | Nur GET / HEAD / OPTIONS; mutierende Methoden liefern 403 |
| Lesen & Schreiben | read_write | Gleicher Zugriff wie der erstellende Benutzer für diese Verkaufsstelle (außer Schlüsselverwaltung) |
Bevorzuge Nur Lesen für Reporting, Sync und KI-Assistenten, sofern keine Schreibzugriffe nötig sind.
API aufrufen
Sende den Schlüssel bei jeder Anfrage als HTTP-Header:
Optionaler Alias (derselbe Schlüssel):
Wenn sowohl ein JWT Authorization: Bearer … als auch X-Api-Key gesetzt sind, gewinnt das JWT und X-Api-Key wird ignoriert.
Beispiel:
Äquivalent mit X-Api-Key:
Widerrufen oder rotieren
Widerrufe Schlüssel unter Einstellungen → Integrationen. Widerrufene oder abgelaufene Schlüssel liefern 401. Zum Rotieren einen neuen Schlüssel erstellen, den Client aktualisieren und den alten widerrufen.
API-Schlüssel können keine anderen API-Schlüssel erstellen, auflisten oder widerrufen — verwalte Schlüssel nur in der Web-App (Sitzungslogin).
Verkaufsstelle (Mandantenfähigkeit)
Lagerbestand, Verkäufe und zugehörige Daten gehören zu einer Verkaufsstelle (POS).
Jeder API-Schlüssel ist bei der Erstellung an eine POS gebunden. Anfragen mit diesem Schlüssel nutzen immer diese POS — du wechselst die POS nicht mit POST /api/point-of-sales/..., wenn du einen API-Schlüssel verwendest.
Erstelle einen eigenen Schlüssel pro Lager/Filiale, wenn du mehrere POS-Kontexte brauchst.
Paginierung
Listen-Endpunkte akzeptieren Spring-Data-Paginierungsparameter:
| Parameter | Beschreibung |
|---|---|
page | Nullbasierter Seitenindex |
size | Seitengröße |
sort | Feld und Richtung, z. B. timeModified,desc |
Erfolgreiche Listenantworten enthalten:
| Header | Beschreibung |
|---|---|
X-Total-Count | Gesamtzahl passender Einträge über alle Seiten |
Fehler
Die meisten Fehler liefern JSON in dieser Form:
Parametrisierte Domänenfehler können { "message": "...", "params": ["..."] } zurückgeben.
Typische Auth-Ergebnisse:
| Status | Bedeutung |
|---|---|
| 401 | Fehlender, ungültiger, widerrufener oder abgelaufener API-Schlüssel |
| 403 | Scope ist Nur-Lesen und die Methode ändert Daten |
Konventionen
- JSON-Request- und -Response-Bodies (
Content-Type: application/json) - Daten als ISO-8601 mit Offset (z. B.
2026-03-15T10:30:00.000Z) - Geldbeträge als Dezimalwerte mit Währungsobjekten wo vorgesehen
- Ids werden vom Server vergeben; beim Anlegen weglassen (oder
nullsenden)
Beispiel: Produkte auflisten
OpenAPI-Referenz
Alle öffentlichen Endpunkte durchsuchen: