KFZ-Bozo Handbuch

Schnittstellen, API & Automationen › Kundenlinks: Angebot, Termin, Bericht (API)

Kundenlinks: Angebot, Termin, Bericht (API)

API-GruppeLive✓ Geprüft am Sat Sep 05 2026 02:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)

Die öffentlichen, login-freien Seiten, die ein Kunde über einen Mail-Link öffnet: sein Angebot ansehen und annehmen, einen Termin buchen oder verwalten, seinen Werkstattbericht ansehen. Kein Passwort — der Link selbst ist der Schlüssel und läuft ab.

Kunde

Bild folgt

Ein Token im Link ersetzt hier das Passwort: Er bindet ausschließlich an das eine Angebot oder den einen Termin, für den er ausgestellt wurde — kein Zugriff auf irgendeine andere Ressource ist damit möglich, und Termin-Links bleiben 180 Tage gültig. Nimmt der Kunde ein Angebot an, wird zuerst das unterschriebene Einverständnis-Dokument erzeugt; erst danach wechselt der Auftragsstatus, und zwar nur, wenn er noch auf Kundenfreigabe wartet — schlägt das Dokument fehl, bleibt der Auftrag unverändert und derselbe Link funktioniert erneut. Ein unbekanntes, abgelaufenes oder bereits verbrauchtes Token liefert immer dieselbe neutrale Fehlermeldung, damit niemand daraus erraten kann, ob ein Auftrag überhaupt existiert. Termin-Verwaltung prüft freie Zeitfenster serverseitig gegen dieselbe Bühnen-Belegung wie der Admin-Kalender.

  • Link meldet „ungültig oder abgelaufen" → das Token ist verbraucht, widerrufen oder zu alt; ein neuer Link muss vom Büro erneut verschickt werden.
  • Angebot lässt sich nicht annehmen → der Auftrag ist nicht mehr im Status Kundenfreigabe, meist weil er bereits durch ein anderes angenommenes Angebot weitergelaufen ist.
  • „Zu viele Anfragen" beim Öffnen des Links → das Rate-Limit für diese IP-Adresse ist erreicht, kurz warten und erneut versuchen.

Nutzt

Geschützt vo…NutztLiestKundenlink…Kunden-Link-To…KundenportalAufträge, Ange…
  • app/api/angebot/[token]
  • app/api/termin/book
  • app/api/termin/manage
  • app/api/termin/availability
  • lib/db/customer-tokens.ts
  • lib/booking-token.ts
  • MEM:kundenprotokoll-verlauf-2026-08-19.md
aufruferBrowser (Kundenlink, kein Login)
routen6 (angebot[token] 3 + termin 3)
authToken im Link statt Passwort (verifyCustomerToken bzw. verifyBookingToken), zusätzlich IP-Rate-Limit je Route; ein ungültiges Token liefert immer dieselbe neutrale Fehlermeldung, nie einen Hinweis auf den Grund

Beleg: app/api/angebot/[token] (3 route.ts) — lib/db/customer-tokens.ts::verifyCustomerToken; MEM:kundenprotokoll-verlauf-2026-08-19.md — LIVE prod=7ed03cb4

Schnittstellen, API & AutomationenSeite bearbeiten: wiki/seiten/schnittstellen-automation/api-kundenlink-buchung.md