Die Schnittstelle deines Salons: API und Webhooks für Zapier, Make und eigene Tools
Deine Steuerberaterin will die Termine des Monats als Tabelle, dein Newsletter-Programm die neuen Kundinnen, deine Website soll direkt in den Kalender buchen. Dafür legst du einen Schlüssel an, gibst ihn dem Tool und entscheidest, was es sehen darf. Für Zapier und Make brauchst du niemanden, der programmiert, und extra bezahlen musst du dafür nichts.
Wofür Salons die Schnittstelle nutzen
Monatsliste für die Buchhaltung
Ein Zap schreibt jeden neuen Termin als Zeile in ein Google-Sheet. Am Monatsende schickst du die Tabelle an deine Steuerberatung, statt Termine aus dem Kalender abzuschreiben.
Neue Kundinnen ins Newsletter-Programm
Jede neue Kundin geht als Kontakt an dein Mailing-Tool, mit ihrer Werbeeinwilligung. Wer nicht eingewilligt hat, bleibt draußen; dazu unten mehr.
Buchen von der eigenen Website
Die freien Zeiten kommen aus der API, die Buchung läuft über denselben Weg wie an deiner Rezeption. Deine Kundin bekommt die gewohnte Bestätigung von Slotora.
Bescheid im Team-Chat
Wird ein Termin für morgen früh abgesagt, landet eine Nachricht in Slack oder Microsoft Teams, und wer gerade frei hat, kann eine Kundin von der Warteliste anrufen.
Wo du die Schlüssel findest
Die Funktion einschalten
Siehst du in den Einstellungen keinen Punkt „API & Webhooks“, schalte unter „Funktionen, die ich nutze“ den Baustein „API und Buchhaltungs-Export“ ein.
Einen Schlüssel pro Tool anlegen
Unter „API & Webhooks“ gibst du dem Schlüssel einen Namen, zum Beispiel Zapier, und kreuzt an, was er darf. Anlegen können das nur die Inhaberin und Admins.
Sofort kopieren
Der Schlüssel erscheint genau einmal. Slotora behält nur einen Fingerabdruck davon, deshalb kann ihn danach niemand mehr auslesen, wir auch nicht.
Abschalten, was du nicht mehr brauchst
Ein Widerruf stoppt nur das eine Tool. Bis zu 20 Schlüssel können gleichzeitig aktiv sein, und ein Schlüssel hört von selbst auf, wenn die Person, die ihn angelegt hat, den Salon nicht mehr verwaltet.
Was ein Schlüssel darf
| Berechtigung | Was das Tool damit bekommt |
|---|---|
| Termine lesen | Was das Tool damit bekommt: Termine mit Namen der Kundin, Leistung, Teammitglied, Preis und bereits Bezahltem, dazu freie Zeiten. |
| Kundschaft lesen | Was das Tool damit bekommt: Namen, Telefon, E-Mail, Sprache und die Werbeeinwilligung. Notizen nie. |
| Leistungen und Team lesen | Was das Tool damit bekommt: Deine Leistungsliste mit Preis und Dauer, dein Team und deine Standorte. |
| Termine buchen | Was das Tool damit bekommt: Bucht eine Zeit, die dein Salon anbietet, wie an der Rezeption. Nur, wenn du es ankreuzt. |
Die API im Überblick
Alles läuft als JSON über HTTPS unter https://slotora.io/api/v1. Der Schlüssel steht im Header Authorization als „Bearer slt_live_…“, alternativ als X-Api-Key, aber nie in der Adresse. Zeiten kommen in der Zeitzone deines Salons mit Versatz zurück, im Winter also etwa 2026-11-24T09:30:00+01:00, damit die Tabelle dieselbe Uhrzeit zeigt wie dein Kalender. Die maschinenlesbare Beschreibung liegt unter /api/v1/openapi.json.
| Anfrage | Berechtigung | Antwort |
|---|---|---|
| GET /api/v1/me | Berechtigung: jede | Antwort: Dein Salon und die Rechte des Schlüssels; gut zum Testen der Verbindung. |
| GET /api/v1/bookings | Berechtigung: Termine lesen | Antwort: Termine ab heute für 31 Tage oder zwischen from und to, filterbar nach Status, Teammitglied, Standort und updatedSince. |
| GET /api/v1/bookings/{id} | Berechtigung: Termine lesen | Antwort: Ein einzelner Termin. |
| GET /api/v1/availability | Berechtigung: Termine lesen | Antwort: Freie Zeiten für eine Leistung an einem Tag, auf Wunsch für eine Person oder einen Standort. |
| POST /api/v1/bookings | Berechtigung: Termine buchen | Antwort: Bucht eine freie Zeit für eine bestehende oder eine neue Kundin. |
| GET /api/v1/clients | Berechtigung: Kundschaft lesen | Antwort: Die Kundenkartei, filterbar nach createdSince oder updatedSince. |
| GET /api/v1/clients/{id} | Berechtigung: Kundschaft lesen | Antwort: Eine Kundin. |
| GET /api/v1/services | Berechtigung: Leistungen und Team lesen | Antwort: Die Leistungsliste. |
| GET /api/v1/staff | Berechtigung: Leistungen und Team lesen | Antwort: Das Team. |
| GET /api/v1/premises | Berechtigung: Leistungen und Team lesen | Antwort: Weitere Standorte, falls du mehr als eine Adresse hast. |
curl "https://slotora.io/api/v1/bookings?from=2026-11-23&to=2026-11-29" \
-H "Authorization: Bearer slt_live_DEIN_SCHLUESSEL"Seiten, Fehler und Grenzen
- Listen kommen seitenweise: data und nextCursor. Gib nextCursor als cursor zurück, bis er null ist. limit liegt zwischen 1 und 100, ohne Angabe bei 50.
- Fehler haben immer die Form { "error": { "code": "…", "message": "…" } } — unauthorized (401), insufficient_scope (403), not_found (404), invalid_request (400), slot_taken (409), rate_limited (429).
- Ein Schlüssel darf 120 Anfragen pro Minute stellen. Darüber antwortet die API mit 429 und sagt in Retry-After, wann es weitergeht.
- Eine Buchung über die API prüft dieselben Regeln wie deine Rezeption: nur angebotene Zeiten, Räume und Geräte werden mitgeprüft. Schickst du einen Idempotency-Key mit, liefert eine Wiederholung innerhalb von fünf Minuten den schon angelegten Termin zurück statt eines zweiten.
- Kennungen eines anderen Salons beantwortet die API mit not_found, genau wie Kennungen, die es nicht gibt. Jede Anfrage eines Schlüssels steht 30 Tage lang im Protokoll deines Salons.
DSGVO: wer was sieht, wenn du ein Tool anschließt
Das Tool wird dein Dienstleister
Für die Daten deiner Kundinnen bist du verantwortlich. Schickst du sie an Zapier, Make oder ein Newsletter-Programm, verarbeitet dieser Anbieter sie in deinem Auftrag, und du brauchst mit ihm einen eigenen Auftragsverarbeitungsvertrag. Sitzt er außerhalb der EU, kläre vorher, auf welcher Grundlage die Daten dorthin gehen dürfen.1
Nur so viel, wie das Tool braucht
Kreuze pro Schlüssel nur an, was das Tool wirklich braucht. Eine Buchhaltungstabelle kommt ohne die Kundenkartei aus, ein Team-Chat ohne Telefonnummern.1
Notizen verlassen Slotora nie
Notizen zur Kundin, zum Termin und Warnhinweise stehen in keiner Antwort und keinem Webhook. Adressen, Geburtstage, Schlagwörter, Treuepunkte und die Bezahlung deines Teams gibt es in der API gar nicht.
Verborgene Kontaktdaten bleiben verborgen
Hast du Telefonnummern und E-Mail-Adressen vor deinem Team verborgen, gibt auch die Schnittstelle sie nicht heraus; die Felder kommen leer zurück und sind als contactsHidden markiert.
Werbung nur mit Einwilligung
Jede Kundin trägt ihre Werbeeinwilligung mit. Ein Newsletter-Tool darf nur die anschreiben, die zugestimmt haben: Werbung per E-Mail ohne vorherige ausdrückliche Einwilligung ist nach dem UWG eine unzumutbare Belästigung.2
Webhooks: Slotora meldet sich bei deinem Tool
Unter „API & Webhooks“ trägst du die Adresse ein, die dir dein Tool gibt, und kreuzt an, was wir schicken sollen. Slotora sieht jede Viertelstunde nach Änderungen, ein Ereignis kommt also innerhalb von etwa 15 Minuten an. Die Adresse muss mit https:// beginnen und öffentlich erreichbar sein; Weiterleitungen folgen wir nicht.
| Ereignis | Wann es kommt |
|---|---|
| booking.created | Wann es kommt: Ein neuer Termin, egal ob online, an der Rezeption oder über die API gebucht. |
| booking.updated | Wann es kommt: Verschoben, einer anderen Person gegeben, neu bepreist oder als erschienen, erledigt oder nicht erschienen markiert. |
| booking.cancelled | Wann es kommt: Abgesagt, von der Kundin oder vom Salon. |
| client.created | Wann es kommt: Eine neue Kundin in der Kartei. |
| payment.recorded | Wann es kommt: Geld zu einem Termin wurde erfasst. In Deutschland sind das Online-Zahlungen über dein Stripe-Konto und Überweisungen, die du einträgst. |
Warum kein Webhook für Bares und Karte am Tresen kommt
Slotora ist keine Kasse. In Deutschland nimmt Slotora am Tresen kein Geld auf, weder bar noch per Karte, und der Knopf „Bezahlt“ setzt nur eine Markierung ohne Betrag. Deshalb entsteht dafür auch keine Zahlung, die ein Webhook melden könnte. Dein Umsatz am Tresen steht in deiner Kasse mit TSE.3
Prüfen, dass ein Webhook wirklich von Slotora kommt
Jede Zustellung trägt den Header Slotora-Signature: t=<Unix-Zeit>,v1=<Signatur>. Die Signatur ist ein HMAC-SHA256 in Hex über Zeit, Punkt und den unveränderten Body, gebildet mit dem Signatur-Geheimnis des Webhooks (whsec_…, es wird beim Anlegen einmal angezeigt). Rechne sie nach, vergleiche, und lehne alles ab, was älter als fünf Minuten ist. Zapier und Make brauchen das nicht, dein eigener Server schon.
import crypto from "node:crypto";
// true, wenn die Nachricht von Slotora stammt und frisch ist
function vonSlotora(geheimnis, header, rohBody) {
const teile = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const erwartet = crypto.createHmac("sha256", geheimnis)
.update(`${teile.t}.${rohBody}`).digest("hex");
const frisch = Math.abs(Date.now() / 1000 - Number(teile.t)) < 300;
return frisch && erwartet.length === (teile.v1 ?? "").length &&
crypto.timingSafeEqual(Buffer.from(erwartet), Buffer.from(teile.v1));
}Wenn dein Tool nicht antwortet
Jede Antwort im Bereich 2xx gilt als angekommen. Alles andere, oder keine Antwort binnen 10 Sekunden, versuchen wir nach 1 Minute, 5 Minuten, 30 Minuten und dann nach 2, 6, 12 und 24 Stunden erneut, insgesamt achtmal. Jeder Versuch steht im Zustellprotokoll.
Nach 15 Fehlversuchen hintereinander oder drei Tagen nur mit Fehlern schalten wir die Adresse ab, und die Inhaberin bekommt eine Push-Nachricht. Ist das Problem behoben, schaltest du sie auf derselben Seite wieder ein.
„Test senden“ schickt eine signierte Nachricht mit Beispieldaten. So lernt Zapier oder Make die Felder kennen, ohne dass echte Kundendaten unterwegs sind.
Mit Zapier, Schritt für Schritt
Hook auffangen
Leg in Zapier einen Zap an, Auslöser „Webhooks by Zapier“ → „Catch Hook“, und kopiere die angezeigte Adresse.
In Slotora eintragen
Einstellungen → API & Webhooks → Webhooks: Adresse einfügen, Ereignisse ankreuzen, „Webhook hinzufügen“.
Test schicken
Drück daneben auf „Test senden“ und in Zapier auf „Test trigger“. Der Beispieltermin erscheint mit allen Feldern.
Weitergeben
Füge die Aktion hinzu, etwa eine Zeile in Google Sheets oder eine Nachricht in Slack, und ordne die Felder zu.
Mit Make, Schritt für Schritt
Eigenen Webhook anlegen
Starte ein Szenario mit Webhooks → „Custom webhook“, leg einen an und kopiere seine Adresse.
In Slotora eintragen
Unter Einstellungen → API & Webhooks einfügen, Ereignisse wählen, hinzufügen.
Struktur lernen lassen
In Make „Redetermine data structure“ drücken, dann in Slotora „Test senden“. Make übernimmt die Felder aus dem Beispiel.
Regelmäßig abholen
Willst du Termine oder Kundinnen lieber abfragen, nimm HTTP → „Make a request“ an https://slotora.io/api/v1/bookings mit dem Header Authorization: Bearer und deinem Schlüssel, und folge nextCursor.
Was die Schnittstelle nicht kann
- Eine DATEV-Schnittstelle hat Slotora nicht. Was deine Steuerberatung braucht, bekommt sie über eine Tabelle aus der API oder den Export.
- Die API bucht nur Zeiten, die dein Salon anbietet. Termine außerhalb der Regeln, Serien und geänderte Preise bleiben eine Entscheidung an der Rezeption.
- Eine fertige Slotora-App im Verzeichnis von Zapier oder Make gibt es noch nicht. Die Module „Webhooks by Zapier“ sowie Webhooks und HTTP in Make reichen dafür aber aus.
Fragen zur Schnittstelle
Kostet die API etwas?
Nein. Schlüssel, Anfragen und Webhooks gehören ohne Aufpreis zu Slotora; die Grenze liegt bei 120 Anfragen pro Minute und Schlüssel.
Brauche ich einen AVV mit Zapier oder Make?
Ja, sobald Daten deiner Kundinnen dorthin gehen. Der Anbieter verarbeitet sie dann in deinem Auftrag, und das regelt ein Auftragsverarbeitungsvertrag zwischen dir und ihm.
Kann ich meine Termine an DATEV übergeben?
Nicht direkt, denn eine DATEV-Schnittstelle gibt es nicht. Viele Steuerberatungen nehmen aber eine Tabelle an, und die lässt sich mit einem Zap jeden Monat automatisch füllen.
Wer im Team darf einen Schlüssel anlegen?
Nur die Inhaberin oder ein Admin, im Browser. Andere Teammitglieder sehen die Schlüssel nicht und können keine anlegen.
Wie schnell kommt ein Webhook an?
Innerhalb von etwa 15 Minuten nach der Änderung, denn Slotora sieht jede Viertelstunde nach.
Bekommt mein Tool auch Barzahlungen mit?
Nein. In Deutschland erfasst Slotora am Tresen kein Geld, also gibt es dafür auch kein Ereignis. Online-Zahlungen über Stripe und eingetragene Überweisungen kommen als payment.recorded.
Quellen
Gesetzestexte, gelesen am angegebenen Datum. Endpunkte, Grenzen und Webhooks haben wir im Code von Slotora nachgesehen (12.11.2026). Das ersetzt keine Rechtsberatung zu deinem AVV.
- DSGVO — Art. 5, Art. 28 und Art. 44 ff. — https://eur-lex.europa.eu/eli/reg/2016/679/oj · abgerufen am
- § 7 UWG — unzumutbare Belästigungen — https://www.gesetze-im-internet.de/uwg_2004/__7.html · abgerufen am
- § 146a AO — elektronische Aufzeichnungssysteme — https://www.gesetze-im-internet.de/ao_1977/__146a.html · abgerufen am
Den ersten Schlüssel anlegen
Konto anlegen, den Baustein „API und Buchhaltungs-Export“ einschalten und einen Schlüssel nur fürs Lesen der Termine erstellen. Mehr braucht die erste Tabelle nicht.
