Co-Labs · Das Back-Office

Ihr Werkzeug liest den Kalender, und jeder Termin kommt signiert bei ihm an.

Drei Lesezugriffe unter einem Schlüssel, drei Ereignisse per Webhook: die freien Zeiten eines Betriebs in Ihrem Werkzeug, sein Kalender aus nächster Nähe verfolgt — und keine einzige Angabe über seine Kundinnen.

Sie lesen drei Dinge eines Betriebs, und jedes davon ist zugesichert

Unter /api/v1/public lesen Sie die Identität des Betriebs, seinen aktiven Katalog und die freien Zeiten eines Tages; jede andere Adresse antwortet mit 404, samt der Liste der drei Routen.

Jedes empfangene Feld ist zugesichert: Unser internes Modell darf sich ändern, was Sie lesen, ändert sich nicht; ein Preis, der erst vor Ort beziffert wird, heisst «auf Anfrage», nie 0.

  • Jede Antwortihre Vertragsversion, die Kennung des Betriebs, der Header X-Api-Version
  • Jeder Fehlerein stabiler code zum Prüfen, eine lesbare Meldung
  • Cache-Control: private, no-storebei jeder Antwort, Ratenbegrenzung inbegriffen

salon

Kennung, Name, Branche, Zeitzone, Buchungsadresse.

services

Aktiver Katalog: Name, Kategorie, Dauer, Preis in CHF, Varianten.

availability

Die freien Zeiten eines Tages für eine Leistung, Person für Person.

Sie lesen die Uhrzeit des Betriebs, und «geschlossen» ist nicht «ausgebucht»

«14:30» ist 14.30 Uhr vor Ort: Jede Uhrzeit steht in der Zeitzone des Betriebs, und die Route salon nennt sie Ihnen.

Ihre freien Zeiten folgen den Regeln des Betriebs: Arbeitszeiten des Teams, Ferien, Schliessungen; eine Leistung, die zuerst einen Besuch verlangt, liefert keinen Zeitplan. Zwei Flags sagen, warum ein Tag leer ist.

Geschlossen

Der Betrieb hat an diesem Tag nicht offen: nichts anzubieten.

Ausgebucht

Der Betrieb ist offen, und an diesem Tag bleibt nichts mehr anzubieten.

Ihr Schlüssel öffnet einen Betrieb, lesend, und sonst nichts

Wir übergeben ihn Ihnen mit einer Bezeichnung und Ihrer technischen Kontaktadresse; er wird ein einziges Mal angezeigt, wir behalten nur seinen Fingerabdruck. Zwei Werkzeuge, zwei Schlüssel.

Ihre Daten ergeben sich aus Ihrem Schlüssel, nie aus der aufgerufenen Adresse: Ihr Schlüssel liest nur Ihre Daten, auf Ihrer Domain wie auf Ihrer Co-Labs-Adresse. Ein interner Token öffnet hier nichts.

  • Formclk_, gefolgt von 32 zufällig gezogenen Bytes
  • HeaderAuthorization: Bearer oder X-API-Key
  • Geltungsbereichein einziger, public:read: kein Schreibzugriff in v1
  • Rate120 Anfragen pro Minute, gezählt pro Schlüssel

Jeder Termin erreicht Sie, signiert

Angelegt, storniert oder verschoben — auf der Website, mit Liah am Telefon oder schriftlich, an der Theke — wird Ihnen der Termin durch einen signierten POST gemeldet, Eingangskanal inbegriffen; ein Test in unserem Repository prüft, dass jeder Weg, der einen Termin schreibt, ihn auch meldet.

Jede Zustellung trägt Colabs-Signature: t=<Zeitstempel>,v1=<HMAC-SHA256>, berechnet über den Zeitstempel und den Body, so wie er abgeht. Prüfen Sie sie in konstanter Zeit, in einem Fenster von fünf Minuten; Colabs-Event-Id und Colabs-Attempt lassen Sie einen erneuten Versuch als Duplikat erkennen.

  • Ereignisserdv.cree, rdv.annule, rdv.deplace, und kein einziges mehr
  • Geheimniseines pro Abonnement, einmal angezeigt, im Ruhezustand verschlüsselt
  • Nutzlasteine opake Referenz, Datum, Uhrzeit, Dauer, Leistung, Status, Kanal
  • Keine Personendatenweder Name noch Telefon noch E-Mail noch Notiz
  • Probelaufein webhook.test aus unserer Konsole

Ihr Server darf ausfallen: Das Ereignis wartet auf Sie

Während der Buchung der Kundin geht nichts hinaus: Das Ereignis wird bei uns aufbewahrt und dann zu Ihnen getragen, und die Buchung kommt zustande, auch wenn Ihr Server gerade gewartet wird. Sieben Versuche über rund 8 Std. 45 Min.: Ein Termin am nächsten Morgen kommt rechtzeitig an.

Eine Antwort 2xx gilt als Erfolg; alles andere ist ein Fehlschlag, Weiterleitung inbegriffen. Nach fünf Abbrüchen in Folge geht das Abonnement in Pause; wir setzen es zusammen mit Ihnen wieder in Gang, mit dem Zähler auf null.

  • Versuchesofort, dann 10 Sek., 1 Min., 5 Min., 30 Min., 2 Std., 6 Std.
  • Frist10 Sekunden pro Zustellung
  • Ihre AdresseHTTPS verlangt, private Adressen abgelehnt, keine Weiterleitung verfolgt
  • Aufbewahrungeine abgeschlossene Zustellung wird nach 30 Tagen gelöscht, eine ausstehende nie

Ihre Integration hält über die Zeit

Die Version lebt im Pfad, v1, und die Revision des Vertrags in jeder Antwort. Ein Feld, eine Route oder ein Wert können hinzukommen: Sehen Sie einen Standardfall vor. Nichts Bestehendes verschwindet oder wechselt seine Bedeutung — das wäre eine v2, und unser schriftlicher Vertrag hält die v1 dann mindestens zwölf Monate, mit den Headern Deprecation und Sunset.

Die Kontaktadresse, die bei der Übergabe des Schlüssels hinterlegt wird, ist Pflicht: Über sie benachrichtigen wir Sie.

Noch nicht

Schlüssel und Abonnements werden mit uns eingerichtet und abgeschaltet, aus unserer Konsole — noch nicht aus dem Back-Office des Betriebs; die Vorankündigung einer Änderung kommt von unserer Hand. Die übrigen Grenzen stehen auf einer einzigen Seite.

Möchten Sie es mit dem Namen Ihres Geschäfts sehen?