Schnittstelle für deinen Salon

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

  1. 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.

  2. 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.

  3. 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.

  4. 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

Termine lesenWas das Tool damit bekommt: Termine mit Namen der Kundin, Leistung, Teammitglied, Preis und bereits Bezahltem, dazu freie Zeiten.
Kundschaft lesenWas das Tool damit bekommt: Namen, Telefon, E-Mail, Sprache und die Werbeeinwilligung. Notizen nie.
Leistungen und Team lesenWas das Tool damit bekommt: Deine Leistungsliste mit Preis und Dauer, dein Team und deine Standorte.
Termine buchenWas 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.

GET /api/v1/meBerechtigung: jedeAntwort: Dein Salon und die Rechte des Schlüssels; gut zum Testen der Verbindung.
GET /api/v1/bookingsBerechtigung: Termine lesenAntwort: 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 lesenAntwort: Ein einzelner Termin.
GET /api/v1/availabilityBerechtigung: Termine lesenAntwort: Freie Zeiten für eine Leistung an einem Tag, auf Wunsch für eine Person oder einen Standort.
POST /api/v1/bookingsBerechtigung: Termine buchenAntwort: Bucht eine freie Zeit für eine bestehende oder eine neue Kundin.
GET /api/v1/clientsBerechtigung: Kundschaft lesenAntwort: Die Kundenkartei, filterbar nach createdSince oder updatedSince.
GET /api/v1/clients/{id}Berechtigung: Kundschaft lesenAntwort: Eine Kundin.
GET /api/v1/servicesBerechtigung: Leistungen und Team lesenAntwort: Die Leistungsliste.
GET /api/v1/staffBerechtigung: Leistungen und Team lesenAntwort: Das Team.
GET /api/v1/premisesBerechtigung: Leistungen und Team lesenAntwort: 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.

booking.createdWann es kommt: Ein neuer Termin, egal ob online, an der Rezeption oder über die API gebucht.
booking.updatedWann es kommt: Verschoben, einer anderen Person gegeben, neu bepreist oder als erschienen, erledigt oder nicht erschienen markiert.
booking.cancelledWann es kommt: Abgesagt, von der Kundin oder vom Salon.
client.createdWann es kommt: Eine neue Kundin in der Kartei.
payment.recordedWann 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

  1. Hook auffangen

    Leg in Zapier einen Zap an, Auslöser „Webhooks by Zapier“ → „Catch Hook“, und kopiere die angezeigte Adresse.

  2. In Slotora eintragen

    Einstellungen → API & Webhooks → Webhooks: Adresse einfügen, Ereignisse ankreuzen, „Webhook hinzufügen“.

  3. Test schicken

    Drück daneben auf „Test senden“ und in Zapier auf „Test trigger“. Der Beispieltermin erscheint mit allen Feldern.

  4. 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

  1. Eigenen Webhook anlegen

    Starte ein Szenario mit Webhooks → „Custom webhook“, leg einen an und kopiere seine Adresse.

  2. In Slotora eintragen

    Unter Einstellungen → API & Webhooks einfügen, Ereignisse wählen, hinzufügen.

  3. Struktur lernen lassen

    In Make „Redetermine data structure“ drücken, dann in Slotora „Test senden“. Make übernimmt die Felder aus dem Beispiel.

  4. 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.

  1. DSGVO — Art. 5, Art. 28 und Art. 44 ff. — https://eur-lex.europa.eu/eli/reg/2016/679/oj · abgerufen am
  2. § 7 UWG — unzumutbare Belästigungen — https://www.gesetze-im-internet.de/uwg_2004/__7.html · abgerufen am
  3. § 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.

Kostenlos registrieren

Dürfen wir messen, welche Seiten wirklich helfen? „Alles akzeptieren“ erlaubt auch die Messung unserer eigenen Anzeigen.

Was heißt das genau?

Wir würden gern mit Google Analytics sehen, welche Seiten helfen und welche nicht, und uns merken, welches Plakat, welcher Flyer oder welche Nachricht von uns — oder die Empfehlung welches Salons — dich hergebracht hat. „Alles akzeptieren“ erlaubt zusätzlich ein Meta-Werbepixel, damit wir wissen, welche unserer eigenen Anzeigen einen Salon gebracht hat, der sich auch angemeldet hat — und wenn du ein Konto anlegst, schickt unser Server Meta deine E-Mail-Adresse verschlüsselt (gehasht), nie als lesbaren Text, mit deiner IP-Adresse, Angaben zu deinem Browser und Metas eigenen Cookie-Kennungen — nie deinen Namen —, ausschließlich damit Meta erkennen kann, dass die Anmeldung aus einer Anzeige kam. Nichts davon läuft auf der Buchungsseite eines Salons. Alles, was der Dienst selbst braucht, funktioniert ohnehin. Cookie-Richtlinie