Skip to content

Termin buchen

Legt einen neuen Servicetermin an. Der Kunde muss vorab über die Kunden-API angelegt oder gesucht werden.

Request

POST /api/oauth/v2/resource/appointments/service

HeaderWert
AuthorizationBearer {access_token}
Content-Typeapplication/json

Erforderlicher Scope: appointments

Request-Body

json
{
  "userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "locationId": "b2c3d4e5-f6a7-8901-bcde-f01234567890",
  "serviceId": "c3d4e5f6-a7b8-9012-cdef-012345678901",
  "customerId": "e5f6a7b8-c9d0-1234-efab-234567890123",
  "status": "active",
  "start": "2026-04-02T09:00:00+02:00",
  "notes": "Bitte nüchtern erscheinen"
}

Request-Felder

FeldTypPflichtBeschreibung
userIdstring (UUID)JaID des buchenden Mitarbeiters
locationIdstring (UUID)JaID des Standorts
serviceIdstring (UUID)JaID der Leistung
customerIdstring (UUID)JaID des Kunden
statusstringNeinTerminstatus: active (Standard) oder request (Terminanfrage)
startstring (ISO 8601)JaGewünschter Terminbeginn
notesstringNeinInterne Notiz zum Termin
availabilityCheckstringNeinVerfügbarkeitsprüfung: full (vollständig inkl. Öffnungszeiten), overlap (Standard, nur Doppelbuchungen), none (keine Prüfung)

Response

Erfolg (201 Created)

json
{
  "data": {
    "id": "d4e5f6a7-b8c9-0123-defa-123456789012",
    "title": "Erstordination – Anna Muster",
    "start": "2026-04-02T09:00:00+02:00",
    "end": "2026-04-02T10:00:00+02:00",
    "allDay": false,
    "status": "active",
    "type": "customer",
    "note": "Bitte nüchtern erscheinen",
    "customer": {
      "id": "e5f6a7b8-c9d0-1234-efab-234567890123",
      "firstName": "Anna",
      "lastName": "Muster"
    },
    "service": {
      "id": "c3d4e5f6-a7b8-9012-cdef-012345678901",
      "name": "Erstordination"
    },
    "course": null,
    "source": "oauth",
    "createdAt": "2026-04-01T14:23:00+02:00",
    "updatedAt": "2026-04-01T14:23:00+02:00"
  }
}

Response-Felder

FeldTypBeschreibung
data.idstring (UUID)Eindeutige Termin-ID
data.titlestringTermintitel
data.startstring (ISO 8601)Tatsächliche Startzeit
data.endstring (ISO 8601)Tatsächliche Endzeit
data.allDaybooleanGanztägiger Termin
data.statusstringTerminstatus (active oder request)
data.typestringTermintyp (z.B. customer)
data.notestring | nullInterne Notiz zum Termin
data.customerobject | nullVerknüpfter Kunde
data.customer.idstring (UUID)Kunden-ID
data.customer.firstNamestringVorname
data.customer.lastNamestringNachname
data.serviceobject | nullGebuchte Leistung
data.service.idstring (UUID)Leistungs-ID
data.service.namestringName der Leistung
data.courseobject | nullVerknüpfter Kurs (falls Termin ein Kurstermin ist)
data.sourcestringBuchungsquelle (z.B. oauth)
data.createdAtstring (ISO 8601)Erstellungszeitpunkt
data.updatedAtstring (ISO 8601)Letzter Änderungszeitpunkt
Beispiele
bash
curl -X POST "https://my.offisy.at/api/oauth/v2/resource/appointments/service" \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "b2c3d4e5-f6a7-8901-bcde-f01234567890",
    "locationId": "b2c3d4e5-f6a7-8901-bcde-f01234567890",
    "serviceId": "b2c3d4e5-f6a7-8901-bcde-f01234567890",
    "customerId": "b2c3d4e5-f6a7-8901-bcde-f01234567890",
    "start": "beispiel",
    "notes": "Terminnotiz",
    "status": "beispiel",
    "availabilityCheck": "beispiel"
  }'
Parameter
Zuerst Token anfordern

Mögliche Fehler

StatusCodeBeschreibung
400validation_errorPflichtfelder fehlen oder UUID ist ungültig
401invalid_clientUngültiger oder fehlender Access Token
403insufficient_scopeScope appointments nicht vorhanden
404not_foundMitarbeiter, Standort, Leistung oder Kunde nicht gefunden
409conflictDas gewählte Zeitfenster ist nicht mehr verfügbar
422unprocessable_entitystart liegt in der Vergangenheit
422booking_errorAllgemeiner Buchungsfehler (z.B. Konfigurationsproblem)

Offisy GmbH