Changelog
Die Spezifikation der REST-API wird aus dem Quellcode erzeugt und mit jedem ZEP-Release veröffentlicht. Seit der Umstellung auf die generierte Spezifikation beschreibt die Versionsnummer den API-Vertrag (1.x.y), nicht mehr das Produkt-Release: eine brechende Änderung erhöht die Hauptversion und landet in einem neuen /api/v2, additive Änderungen bleiben in v1. Die Einträge oberhalb der Umstellung schreibt die Release-Pipeline aus dem Diff der Spezifikation (Texte auf Englisch); die Einträge darunter sind von Hand geschrieben.
v8.0.7 · OpenAPI 1.0.0 · 25.09.2026
Automatisch aus dem Spezifikations-Diff dieses Releases erzeugt (Einträge auf Englisch).
Beide Änderungen schärfen die Eingabeprüfung. Anfragen, die jetzt mit 422 abgelehnt werden, haben auch vorher kein brauchbares Ergebnis geliefert: Ein Datum mit Uhrzeit bei /attendances endete in einem Serverfehler (500), ein leeres start_date oder end_date bei /departments ergab keinen korrekten Filter. Clients, die Datumswerte bereits als JJJJ-MM-TT senden, sind nicht betroffen.
POST /attendances
- KORREKTUR the `date` request property `format` changed from `date-time` to `date`
PATCH /attendances/{id}
- KORREKTUR the `date` request property `format` changed from `date-time` to `date`
PUT /attendances/{id}
- KORREKTUR the `date` request property `format` changed from `date-time` to `date`
GET /departments
- KORREKTUR the `query` request parameter `end_date` became not nullable
- KORREKTUR the `query` request parameter `start_date` became not nullable
v8.0.7 · OpenAPI 1.0.0 · 25.09.2026 — die generierte Spezifikation wird maßgeblich
- INFO Das OpenAPI-Dokument wird bei jedem Release aus dem Code (Controller, Form Requests, Resources) erzeugt und hier unverändert veröffentlicht — dieselbe Datei, die die interaktive Referenz rendert. Beschreibungen stehen neben dem Feld, das sie beschreiben, und können nicht mehr auseinanderlaufen.
- INFO Versionsschema:
info.versionist1.0.0und folgt ab jetzt dem Vertrag. Die bisherigen Nummern (7.12.49und älter) spiegelten die ZEP-Produktversion. - INFO Alle Referenzseiten dieser Dokumentation (und diese Navigation) werden aus der Spezifikation erzeugt, auf Deutsch und Englisch. Die Antwortbeispiele sind die Feldbeispiele der Spezifikation.
- INFO Für ZEP Clock wird eine eigene Spezifikation neben der Vollversion veröffentlicht; die Referenzseite hat einen Umschalter, und jede Endpunktseite sagt, ob der Endpunkt auf einer Clock-Instanz verfügbar ist.
- NEU Alle Update-Operationen akzeptieren
PUTals Alias vonPATCH— der Router tat das immer, die Dokumentation sagt es jetzt. - ABGEKÜNDIGT GET Planung (Legacy-Alias):
GET /planningleitet aufGET /planningsum und antwortet mit den HeadernDeprecation,Sunset(2027-08-31) undLink. Der Alias wird frühestens am 2027-08-31 entfernt. - ABGEKÜNDIGT Kunden: das Objekt
statusträgt in der Spezifikationdeprecated: trueundx-sunset: 2027-08-31. Lesen Sie stattdesseninactive;statusist nicht Teil von API v2. - FIX Pfadparameter heißen nach dem Schlüssel, über den die API auflöst:
/absence-reasons/{name},/activities/{activity},/categories/{name},/customers/{customer_number}/contacts/{id},/invoices/{invoice_number}. Numerische IDs haben dort nie funktioniert; die Dokumentation behauptete es. - FIX
createdundmodifiedsind an jeder Ressource dokumentiert stattcreated_at/updated_at, die die API nie geliefert hat. - FIX Regelarbeitszeiten liefern
holidayCalendarundbreakRegulationTypemit den englischen Feldnamen, die die API immer zurückgegeben hat (name,note,country,region), nicht mit den deutschen Spaltennamen des alten Dokuments. - FIX Nullability und Pflichtfelder jeder Antwort entsprechen den echten Antworten (an einer laufenden Instanz gemessen), und der Filter
status[]der Rechnungspositions-Endpunkte deklariert seine Werte als Ganzzahlen.
v7.12.49 (24.07.2026)
Fasst alle Änderungen seit v7.12 (22.06.2026) zusammen.
- FIX POST Projektzeit anlegen: Die Buchungsregeln werden jetzt vor dem Schreiben geprüft, Verstöße kommen als
422mit Meldungen je Feld zurück — abgeschlossener Monat, überschrittenes Freigabedatum, Erfassungszeitraum, Nichtarbeitstag oder Feiertag, Beschäftigungszeitraum, Laufzeit von Projekt, Vorgang oder Ticket, überschrittene Planstunden. Die Schnittstelle hat solche Buchungen bisher als einzige angenommen; Weboberfläche, SOAP und Clock lehnen sie seit jeher ab. Wer gültig bucht, merkt nichts. - FIX Projektzeiten: Eine Buchung, die um
00:00endet, gehört zum Folgetag. Diese Grenze geht jetzt in die Überschneidungsprüfung ein, Doppelbuchungen über die Tagesgrenze werden dadurch erkannt und abgelehnt. - FIX GET Kunden:
statusbleibt erhalten und meldet jetzt den tatsächlichen Zustand. Zuvor kam ein inaktiver Kunde als{ "value": 1, "label": "Active" }zurück, obwohl die Dokumentation immer1 = aktivsagte. Für aktive Kunden ändert sich nichts; wer die Umkehrung im eigenen Client ausgeglichen hat, entfernt diesen Ausgleich. - VERALTET Kunden:
inactive(boolean) ersetztstatus.statuswird weiterhin ausgeliefert und beiPOSTundPATCHakzeptiert; werden beide gesendet, gewinntinactive. Der Filter?status=ist ebenfalls veraltet, Ersatz ist?inactive=. Ein Abkündigungsdatum wird gesondert angekündigt. - NEU PATCH Projektzeit aktualisieren
- NEU DELETE Projektzeit löschen: Prüft die Sperrfristen — abgeschlossener Monat, Freigabedatum, Erfassungszeitraum
- NEU POST Ansprechpartner anlegen
- NEU GET Ansprechpartner abrufen
- NEU PATCH Ansprechpartner aktualisieren
- NEU DELETE Ansprechpartner löschen
- NEU PATCH Projektvorgang aktualisieren
- NEU Projektzeiten:
end_datein jeder Antwort — der Kalendertag, an dem die Buchung endet.toallein ist bei einer Buchung bis Tagesende mehrdeutig, weil sie alsto = 00:00:00am Starttag gespeichert wird. - NEU Ansprechpartner:
departmentundcategoriesin der Antwort - NEU Die Filter
modified_afterundmodified_beforeauf mehreren Listen-Endpunkten - NEU Die Sprachen
sk(Slowakisch) undtr(Türkisch) - FIX Ein leerer Datumsfilter liefert
422statt500— bei Abwesenheiten und fünf weiteren Endpunkten - FIX Mitarbeiter, deren Beschäftigungszeitraum kein Anfangs- oder Enddatum hat, werden nicht mehr als „außerhalb des Beschäftigungszeitraums” abgelehnt. Eine fehlende Grenze bedeutet jetzt offen.
- FIX
default_billabilityundreceipts_billabilitywerden beiPOSTundPATCHnicht mehr ignoriert - FIX Planung: Die konfigurierten Vorgabewerte werden zurückgegeben
- INFO Neun Operationen, die es längst gab, sind jetzt beschrieben — unter anderem
POST /absences,GET /attendances/:idundPATCH /employees/:username. Dazu 66 Felder, die Antworten schon immer enthielten, und zwei Beziehungsschlüssel bei den regulären Arbeitszeiten, die nie so hießen wie dokumentiert.
v7.12 (22.06.2026)
- NEU GET Arbeitszeitsalden: Endpunkt zum Abrufen der zwischengespeicherten Überstunden- und Urlaubsansprüche hinzugefügt
- NEU GET Arbeitszeitsaldo-Details: Endpunkt für einen einzelnen Arbeitszeitsaldo-Datensatz hinzugefügt
- NEU GET Rechnungspositionen nach Projekt: Endpunkt zum Auflisten der Rechnungspositionen eines Projekts hinzugefügt
v7.8.74 (09.01.2026)
- NEU POST Ticket erstellen: Endpunkt zum Erstellen von Tickets hinzugefügt
- NEU PATCH Ticket aktualisieren: Endpunkt zum Aktualisieren von Tickets hinzugefügt
- NEU DELETE Ticket löschen: Endpunkt zum Löschen von Tickets hinzugefügt
- NEU POST Ticket-Anhang hochladen: Endpunkt zum Hochladen von Ticket-Anhängen hinzugefügt
- NEU POST Teilaufgabe erstellen: Endpunkt zum Erstellen von Teilaufgaben hinzugefügt
- NEU PATCH Teilaufgabe aktualisieren: Endpunkt zum Aktualisieren von Teilaufgaben hinzugefügt
- NEU DELETE Teilaufgabe löschen: Endpunkt zum Löschen von Teilaufgaben hinzugefügt
- NEU PATCH Kunde aktualisieren: Endpunkt zum Aktualisieren von Kunden hinzugefügt
- NEU DELETE Kunde löschen: Endpunkt zum Löschen von Kunden hinzugefügt
- NEU PATCH Projekt aktualisieren: Endpunkt zum Aktualisieren von Projekten hinzugefügt
- NEU DELETE Projekt löschen: Endpunkt zum Löschen von Projekten hinzugefügt
v7.8.64 (07.01.2026)
- NEU POST Beleg erstellen: Endpunkt zum Erstellen von Belegen hinzugefügt
- NEU PATCH Beleg aktualisieren: Endpunkt zum Aktualisieren von Belegen hinzugefügt
- NEU DELETE Beleg löschen: Endpunkt zum Löschen von Belegen hinzugefügt
- NEU PUT Anhang hochladen: Endpunkt zum Hochladen von Beleganhängen hinzugefügt
- NEU DELETE Anhang löschen: Endpunkt zum Löschen von Beleganhängen hinzugefügt
v7.7.0 (07.10.2025)
- NEU GET Artikel: Endpunkt zum Abrufen von Artikeln hinzugefügt
- NEU GET Artikel-Details: Endpunkt für einzelnen Artikel hinzugefügt
- NEU GET Planung: Endpunkt zum Abrufen von Planungseinträgen hinzugefügt
- NEU GET Projekt-Standorte: Endpunkt für Standorte eines Projekts hinzugefügt
- NEU PUT Mitarbeiter aktualisieren: Endpunkt zum Aktualisieren von Mitarbeitern hinzugefügt
- NEU PUT Beschäftigungszeitraum aktualisieren: Endpunkt zum Aktualisieren von Beschäftigungszeiträumen hinzugefügt
- FIX Korrektur Datentyp
plan_can_exceedvon boolean zu enum (0-4) in allen Projekt-Endpunkten - FIX Fehlende Filterparameter (
project_status,project_start_date,project_end_date) für Mitarbeiterprojekte hinzugefügt - FIX Fehlendes
idFeld in ProjectEmployee Response-Beispielen ergänzt
v7.6.1 (22.09.2025)
- NEU GET Standorte: Endpunkt zum Abrufen von Standorten hinzugefügt
- NEU GET Standortdetails: Endpunkt für einzelnen Standort hinzugefügt
- NEU GET Standortlisten: Endpunkt für Standortlisten hinzugefügt
- NEU GET Standortlisten-Details: Endpunkt für einzelne Standortliste hinzugefügt
- NEU GET Standorte in Liste: Endpunkt für Standorte innerhalb einer Liste hinzugefügt
- NEU GET Dynamische Attribute: Endpunkt für dynamische Attributdefinitionen hinzugefügt
- NEU GET Details dynamischer Attribute: Endpunkt für einzelnes dynamisches Attribut hinzugefügt
- NEU GET Rechnungspositionen: Separater Endpunkt für alle Rechnungspositionen hinzugefügt
- NEU GET Rechnungspositionsdetails: Endpunkt für einzelne Rechnungsposition hinzugefügt
- NEU GET Rechnungsanhänge: Endpunkt für Rechnungsanhänge hinzugefügt
- NEU POST Abwesenheit erstellen: Endpunkt zum Erstellen von Abwesenheiten hinzugefügt
- NEU POST Beschäftigungszeitraum erstellen: Endpunkt zum Erstellen von Beschäftigungszeiträumen hinzugefügt
- NEU POST Kunden erstellen: Endpunkt zum Erstellen von Kunden hinzugefügt
- NEU POST Projekt erstellen: Endpunkt zum Erstellen von Projekten hinzugefügt
- NEU POST Projektaufgabe erstellen: Endpunkt zum Erstellen von Projektaufgaben hinzugefügt
- INFO OpenAPI-Spezifikation auf ~85 Endpunkte erweitert (vorher ~35)
- INFO Response-Beispiele für einige neue Endpunkte werden im nächsten Update ergänzt
v7.4.2 (24.06.2025)
- NEU GET Projektzeiten: Neue Felder
project_release,project_released_atundproject_released_byfür die Projektzeitfreigabe hinzugefügt - NEU GET Projektzeit-Details: Neue Felder für die Projektzeitfreigabe hinzugefügt
v7.4.1 (18.06.2025)
- INFO OpenAPI-Spezifikation aktualisiert, um alle dokumentierten Endpunkte einzuschließen
- NEU POST Mitarbeiter erstellen
- FIX GET Abwesenheiten: Response-Beispiele an aktuelle API-Struktur angepasst, inklusive neuer Felder
absence_reason_id,absenceReasonObjekt und korrigierte Datumsformate - FIX GET Projektzeiten: Response-Beispiele an aktuelle API-Struktur angepasst, Datums-/Zeitformate aktualisiert
- NEU GET Projektzeit-Details: Dokumentation für einzelne Projektzeit hinzugefügt
- FIX GET Abteilungen: Response-Beispiele mit neuen Feldern
parent_id,manager_count,children_countaktualisiert - FIX GET Abteilungs-Details: Response-Struktur mit
managerArray stattmanager_countaktualisiert - FIX GET Abteilungs-Mitarbeiter: Response-Beispiele mit neuem Feld
approval_dateund Language-Objektstruktur aktualisiert - FIX GET Mitarbeiter: Neue Felder
categoriesunddynamicAttributesArrays hinzugefügt,release_datezuapproval_dategeändert - NEU GET Mitarbeiter-Transponder: Dokumentation für das Abrufen von RFID-Transpondern eines Mitarbeiters hinzugefügt
- FIX GET Terminals: Response-Beispiele an aktuelle API-Struktur mit Gerätetypen und Statuscodes angepasst
- FIX GET Terminal-Details: Response-Struktur mit employees und categories Arrays aktualisiert
- FIX GET Kunden: Response-Struktur mit neuen Feldern
vat(ersetzttax),statusals Objekt,department_id,categoriesunddynamicAttributesArrays aktualisiert - FIX GET Kunden-Details: Response mit neuen Adressfeldern aktualisiert,
employeesArray entfernt, vollständigepriceTablesStruktur hinzugefügt - FIX GET Angebote: Response-Beispiele aktualisiert und fehlendes Feld
order_probability_percenthinzugefügt - NEU GET Angebotspositionen: Dokumentation für das Abrufen von Angebotspositionen hinzugefügt
- FIX GET Belege: Response-Struktur mit vereinfachter
receipt_type_idals String statt Objekt aktualisiert, Feldnamenis_amount_gross_or_netzuis_amount_netundis_invoice_amount_gross_or_netzuis_invoice_amount_netgeändert - FIX GET Beleg-Details: Response-Struktur an Listen-Endpunkt mit gleichen Feldänderungen angepasst
- FIX GET Beleg-Beträge: Response-Beispiele mit realistischen Daten aktualisiert und neue Felder
is_amount_netundis_invoice_amount_nethinzugefügt - FIX GET Beleg-Anhänge: Response-Beispiel mit Base64-codierten Dateiinhalten hinzugefügt
- FIX GET Tickets: Response-Beispiele korrigiert - enthielten fälschlicherweise Belegdaten statt Ticketdaten,
categoriesArray hinzugefügt - FIX GET Ticket-Details: Response-Beispiel mit aktuellen Daten aktualisiert
- FIX GET Ticket-Teilaufgaben: Response-Beispiel mit realistischen Daten aktualisiert
- FIX GET Ticket-Teilaufgabe Details: Response-Beispiel mit anonymisierten Daten aktualisiert, Überschrift korrigiert
- NEU GET Ordner: Neuer Endpunkt zum Abrufen von Ordnern hinzugefügt
- NEU GET Ordner-Dokumente: Neuer Endpunkt zum Abrufen von Dokumenten innerhalb eines Ordners
- NEU GET Preisgruppen: Neuer Endpunkt zum Abrufen von Preisgruppen hinzugefügt
- NEU GET Tätigkeiten: Neuer Endpunkt zum Abrufen von Tätigkeiten hinzugefügt
- NEU GET Fehlgründe: Neuer Endpunkt zum Abrufen von Fehlgründen hinzugefügt
- NEU GET Kategorien: Neuer Endpunkt zum Abrufen von Kategorien hinzugefügt
v7.4.0 (17.06.2025)
- NEU Hauptversion-Update mit erweiterten API-Funktionen
- INFO Aktualisierte API-Dokumentation und verbesserte Endpunkt-Beschreibungen
v6.13.17 (16.09.2024)
- INFO GET Projekt-Tasks wurden erweitert
v6.13.16 (27.08.2024)
- NEU GET Projekt-Preistabellen abrufen
- NEU GET Projektvorgang-Details abrufen
- NEU GET Unterabteilungen abrufen
- NEU GET Abteilungs-Mitarbeiter abrufen
- NEU GET Kunden-Preistabellen abrufen
- NEU GET Projekte eines Mitarbeiters abrufen
- NEU GET Rechnungen abrufen
- NEU GET Rechnungs-Details abrufen
- NEU GET Rechnungspositionen abrufen
- NEU GET Angebote abrufen
- NEU GET Angebot-Details abrufen
- FIX GET Projekte: Es wurden u.U. nicht alle Projekte angezeigt.
v6.12.5 (06.03.2024)
- INFO Das Rate-Limiting wurde auf 12000 Requests pro Stunde erhöht. Pro 5 Minuten sind maximal 1000 Requests erlaubt
- NEU GET Projekte Projektfilter um den Parameter
nameerweitert - FIX GET Projekte: Der Wert
plan_hourszeigte keine Planstunden, wenn diese in Vorgängen definiert wurden. Hierzu wurde nun der Wertplan_hours_childrenhinzugefügt - FIX GET Projekte: Das Projekt muss nun nicht mehr komplett innerhalb eines gefilterten Zeitraums liegen. Es reicht, wenn es innerhalb des Zeitraums aktiv war
- FIX GET Mitarbeiter: Unter bestimmten Umständen trat ein Server Error auf. Dieser Fehler wurde behoben
v6.12.4 (01.03.2024)
- INFO Kleinere Optimierung der Performance
v6.12.3 (16.02.2024)
- GET-Requests für Belege, Tickets
- Filterung der Projektzeiten nach
project_idundticket_idhinzugefügt - Zusatzattribute
dynamicAttributeszu Projektdetails und Mitarbeiterdetails hinzugefügt
v6.12.2 (02.02.2024)
- Bugfix für
GET /absences:absenceReasonwird nun korrekt zurückgegeben - GET-Requests für Abteilungen, Terminals
- GET-Request für Mitarbeiter-Mahlzeiten
v6.12.1 (14.01.2024)
- Initialer Release der ZEP REST-API
- GET-Requests für Projekte, Projektzeiten, Mitarbeiter, Kunden und Abwesenheiten