Basis-URL: https://api.schraubertermin.de/v1

Buchungen

Verwalten Sie Werkstatt-Termine: auflisten, erstellen, bestätigen, stornieren und Status ändern.

GET/v1/buchungen

Listet alle Buchungen Ihrer Werkstatt auf. Unterstützt Filterung nach Datum, Status und Paginierung.

Query-Parameter

NameTypPflichtBeschreibung
datum_vonstring (ISO 8601)NeinStartdatum für Filterung (z.B. 2025-01-01)
datum_bisstring (ISO 8601)NeinEnddatum für Filterung
statusstringNeinFilter nach Status: pending, confirmed, checked_in, in_progress, completed, cancelled, no_show
pageintegerNeinSeitennummer (Standard: 1)
per_pageintegerNeinEinträge pro Seite (Standard: 25, Max: 100)
"token-method">curl "token-keyword">-X GET '"token-url">https://api.schraubertermin.de/v1/buchungen?status=confirmed&datum_von=2025-06-01' \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'
Response200 OK
{
  "data": [
    {
      "id": "b1a2c3d4-5678-9012-3456-789012345678",
      "datum": "2025-06-15",
      "uhrzeit": "09: 00",
      "dauer_minuten": 60,
      "status": "confirmed",
      "service": {
        "id": 1,
        "name": "Reifenwechsel",
        "preis": 4900
      },
      "kunde": {
        "id": "k1a2...",
        "name": "Max Mustermann",
        "telefon": "+491701234567"
      },
      "check_in_token": "abc123...",
      "erstellt_am": "2025-06-10T14: 30: 00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 48,
    "total_pages": 2
  }
}
GET/v1/buchungen/:id

Ruft eine einzelne Buchung mit allen Details ab.

Pfad-Parameter

NameTypPflichtBeschreibung
iduuidJaID der Buchung
"token-method">curl "token-keyword">-X GET "token-url">https://api.schraubertermin.de/v1/buchungen/b1a2c3d4-5678-9012-3456-789012345678 \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'
Response200 OK
{
  "id": "b1a2c3d4-5678-9012-3456-789012345678",
  "datum": "2025-06-15",
  "uhrzeit": "09: 00",
  "dauer_minuten": 60,
  "status": "confirmed",
  "service": {
    "id": 1,
    "name": "Reifenwechsel",
    "preis": 4900
  },
  "kunde": {
    "id": "k1a2...",
    "name": "Max Mustermann",
    "email": "max@example.com",
    "telefon": "+491701234567"
  },
  "fahrzeug": {
    "marke": "BMW",
    "modell": "320d",
    "baujahr": 2020,
    "kennzeichen": "B-AB 1234"
  },
  "check_in_token": "abc123...",
  "check_in_code": "A1B2C3",
  "eingecheckt_am": null,
  "notizen": "Winterreifen mitbringen",
  "erstellt_am": "2025-06-10T14: 30: 00Z"
}
POST/v1/buchungen

Erstellt eine neue Buchung. Der Zeitslot wird auf Verfügbarkeit geprüft.

Body-Parameter

NameTypPflichtBeschreibung
service_idintegerJaID des gebuchten Services
datumstring (ISO 8601)JaBuchungsdatum (z.B. 2025-06-15)
uhrzeitstring (HH:MM)JaStartzeit (z.B. 09:00)
kunde_iduuidNeinID eines bestehenden Kunden
kundeobjectNeinNeuer Kunde: { name, email, telefon }
fahrzeugobjectNein{ marke, modell, baujahr, kennzeichen }
notizenstringNeinInterne Notizen zur Buchung
"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/buchungen \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{
    "service_id": 1,
    "datum": "2025-06-15",
    "uhrzeit": "09:00",
    "kunde": {
      "name": "Max Mustermann",
      "email": "max@example.com",
      "telefon": "+491701234567"
    },
    "fahrzeug": {
      "marke": "BMW",
      "modell": "320d",
      "baujahr": 2020,
      "kennzeichen": "B-AB 1234"
    }
  }'
Response201 Created
{
  "id": "neue-uuid-hier",
  "datum": "2025-06-15",
  "uhrzeit": "09: 00",
  "status": "pending",
  "check_in_token": "generated-token...",
  "check_in_code": "X9Y8Z7"
}
POST/v1/buchungen/:id/bestaetigen

Bestätigt eine ausstehende Buchung. Optional wird eine Bestätigungs-E-Mail an den Kunden gesendet.

Pfad-Parameter

NameTypPflichtBeschreibung
iduuidJaID der Buchung

Body-Parameter

NameTypPflichtBeschreibung
email_sendenbooleanNeinBestätigungs-E-Mail senden (Standard: true)
"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/buchungen/b1a2c3d4.../bestaetigen \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"email_senden": true}'
Response200 OK
{
  "id": "b1a2c3d4...",
  "status": "confirmed",
  "bestaetigt_am": "2025-06-10T15: 00: 00Z",
  "email_gesendet": true
}
POST/v1/buchungen/:id/stornieren

Storniert eine bestehende Buchung. Optional wird der Kunde per E-Mail benachrichtigt.

Body-Parameter

NameTypPflichtBeschreibung
grundstringNeinStornierungsgrund (optional)
email_sendenbooleanNeinStornierungsbenachrichtigung senden (Standard: true)
"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/buchungen/b1a2c3d4.../stornieren \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"grund": "Kunde hat abgesagt"}'
Response200 OK
{
  "id": "b1a2c3d4...",
  "status": "cancelled",
  "storniert_am": "2025-06-10T16: 00: 00Z"
}
PATCH/v1/buchungen/:id/status

Aktualisiert den Status einer Buchung entlang des Workflows: pending → confirmed → checked_in → in_progress → completed.

Body-Parameter

NameTypPflichtBeschreibung
statusstringJaNeuer Status: pending, confirmed, checked_in, in_progress, completed, no_show

Status-Übergänge müssen dem Workflow folgen. Ein Sprung von pending direkt zu completed ist nicht erlaubt.

"token-method">curl "token-keyword">-X PATCH "token-url">https://api.schraubertermin.de/v1/buchungen/b1a2c3d4.../status \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"status": "in_progress"}'
Response200 OK
{
  "id": "b1a2c3d4...",
  "status": "in_progress",
  "aktualisiert_am": "2025-06-15T09: 15: 00Z"
}