Die API erfordert den Plus-Plan. Das enthaltene Limit beträgt 150 Anfragen pro Sekunde und IP-Adresse. Für ein kostenpflichtiges Limit von 1500 Anfragen pro Sekunde erhältst du die aktuellen Preise beim Support.
Lokalisierte Namen
Endpunkte mit Abwesenheitsart- oder Kontingentnamen akzeptieren optionallocale (en, de, fr, hu, it, pl, pt, ru, es, tr oder uk). Bei GET-Anfragen ist dies ein Query-Parameter. name verwendet die Übersetzung, falls vorhanden; default_name enthält immer den gespeicherten Namen. Nicht unterstützte Werte wie DE oder de-DE geben 400 zurück.
Ohne locale bleiben Namen von Abwesenheitsarten unverändert. Kontingentnamen folgen der Sprache des Benutzers, dem der API-Schlüssel gehört. Bei GET /requests_per_day werden außerdem month, weekday und fullday lokalisiert. Aktuelle Webhook-Payloads liefern nur den gespeicherten Namen.
POST /leave_types und PUT /leave_types/{id} akzeptieren optional ein Array translations mit Objekten { language, name }. Wenn du es sendest, ersetzt es alle gespeicherten Übersetzungen. Lässt du das Feld weg, bleiben sie unverändert.
Kontingente über die API verwalten
Eine Kontingentregel bestimmt Betrag, Rhythmus, Beginn des Kontingentjahres und Übertrag. Eine Regel gehört zu einer Kontingentart. Benutzer werden über eine Regelzuweisung mit Gültigkeitszeitraum verbunden; individuelle Korrekturen werden als Anpassungen gespeichert.
Beachte dabei:
- Schreibzugriffe auf die Kontingentverwaltung erfordern einen authentifizierten Administrator. Die Leseendpunkte
GET /allowance-types,GET /allowance-types/{id}undGET /members/{member_id}/allowancesfunktionieren auch im Kontext eines authentifizierten Managers für Benutzer, die er sehen darf. Workspace-API-Schlüssel können nur aktive Administratoren erstellen und verwenden; ein Manager-Kontext kann über ein validiertes Microsoft Entra ID Bearer-Token entstehen. GET /allowance-typesliefert die IDs, die Regeln, Zuweisungen, Anpassungen und Salden alsallowance_type_idverwenden. Jede Kontingentart enthält außerdemdefault_rule_idunddefault_rule_manually_managed. Istdefault_rule_manually_managedwahr, werden neue Benutzer manuell verwaltet, sofern ihre Abteilung keine Regel vorgibt.- Datumsfelder wie
rule_start_date,rule_end_date,accrual_anchor_date,dateundexpiry_dateverwendenYYYY-MM-DD. rule_start_dateist der erste eingeschlossene Tag.rule_end_dateundexpiry_datesind der letzte eingeschlossene Tag.nullbedeutet kein Enddatum.coverage_start_dateist schreibgeschützt und zeigt den tatsächlichen Beginn des Kontingentaufbaus für den Benutzer.coverage_start_dateentsprichtrule_start_dateoder dem späteren Beschäftigungsbeginn. Ohne Beschäftigungsbeginn, bei einer früher begonnenen Beschäftigung oder wenn die Zuweisung schon vorher endete, bleibt es beirule_start_date. Eine spätere Korrektur des Beschäftigungsbeginns ändertcoverage_start_datebeim nächsten Lesen, nichtrule_start_date.- Bei
PATCH /rule-assignments/{id}lässt ein nicht gesendetesrule_end_dateden Wert unverändert;nullmacht die Zuweisung unbegrenzt. - Das
expiry_dateeiner Anpassung ist der letzte nutzbare Tag. Es darf dem Datum der Anpassung entsprechen; ein früheres Datum wird abgelehnt. - Beträge verwenden Tage für tagesbasierte und Minuten für stundenbasierte Kontingente.
proration_basissteuert die Berechnung eines anteiligen Jahres:monthzählt volle Monate vollständig und berechnet angebrochene Start- oder Endmonate taggenau,dayrechnet jeden Kalendertag undfull_monthzählt nur vollständige Monate mit jeweils 1/12. Der Standard istmonth; bei monatlichen und zweiwöchentlichen Regeln wird das Feld ignoriert.rule_amountmuss größer als 0 sein. NutzePOST /members/{member_id}/manual-rule, wenn kein automatischer Aufbau stattfinden soll.- Änderungen und Löschungen von Zuweisungen benötigen einen Grund mit 3 bis 500 Zeichen.
GET /members/{member_id}/allowancesliefertallowanceals wirksames Kontingent, aufgeteilt inrule_allowanceundadjustments.
Ketten von Regelzuweisungen
Zuweisungen für eine Kontingentart bilden eine Kette. Ein Enddatum (rule_end_date oder valid_until) ist nur am Tag vor dem Beginn der nächsten Zuweisung oder am letzten Beschäftigungstag zulässig. Verwende null, wenn nichts folgt. Bereits vorhandene Lücken oder Überschneidungen werden toleriert, dürfen durch einen Schreibzugriff aber nicht größer werden. Beim Löschen einer Zuweisung erweitert absentify die vorherige Zuweisung nach vorn oder, falls es keine gibt, die folgende nach hinten.
Kontingentarten und Standards
POST /allowance-typeserstellt eine Kontingentart ohne Regel. Bis du eine Regel hinzufügst, wird nichts gutgeschrieben.allowance_unitistdaysoderhoursund kann nach der Erstellung nicht geändert werden. Stundenbasierte Beträge werden in Minuten angegeben.PATCH /allowance-types/{id}ändert nur übermittelte Felder.translationsersetzt beim Senden den gesamten gespeicherten Satz.DELETE /allowance-types/{id}ist gesperrt, solange Abwesenheitsarten, Standardzuweisungen oder Regeln davon abhängen und für die letzte Kontingentart im Workspace.POST /allowance-types/reordersetzt die Reihenfolge. Sende für ein eindeutiges Ergebnis alle IDs des Workspaces.PUT /allowance-types/{allowance_type_id}/default-rulesetzt den Organisationsstandard für neue Benutzer.rule_id: nullwählt Manuell verwalten. Eine Regel muss aktiv, geteilt und von derselben Kontingentart sein. Bestehende Benutzer werden nicht verschoben; ein Abteilungsstandard hat für neue Benutzer Vorrang.DELETE /rules/{id}benötigtreassign_to, solange Benutzer zugewiesen sind. Sie bleiben bis zum ersten Geschäftsjahresbeginn ab heute auf der gelöschten Regel und wechseln dann, niemals mitten im Jahr.
Benutzer zwischen Regeln verschieben
POST /members/{member_id}/rule-changebeendet die aktuelle Zuweisung am Tag vorvalid_fromund beginnt die neue anvalid_from. Sende die ersetzte Zuweisung alscurrent_assignment_id.POST /members/{member_id}/manual-rulebeendet den automatischen Aufbau abvalid_from. Sende die aktive Zuweisung alscurrent_assignment_id, odernull, wenn keine besteht. Eine überlappende Zuweisung führt sonst zum Fehler.valid_fromist der erste eingeschlossene,valid_untilder letzte eingeschlossene Tag.valid_until: nullbedeutet unbegrenzt. Beide Endpunkte verlangen einen Grund mit 3 bis 500 Zeichen.GET /rules/{rule_id}/membersist eine Vorschau ohne Offset:limitist 1 bis 50, Standard 10, währendtotalalle zugewiesenen Benutzer zählt.
Salden und Historie lesen
GET /members/{member_id}/allowancesliefert alle verfügbaren Geschäftsjahre aufsteigend.allowanceentsprichtrule_allowanceplusadjustments; deaktivierte Kontingentarten fehlen.GET /members/{member_id}/allowance-breakdownerklärt Regel, monatliche Gutschriften, Übertrag, Verfall und gebuchte Anfragen. Beilegacy_unmigratedoderno_allowance_for_yearbleiben die übrigen Details leer.POST /allowances/{id}/revert-carryover-overrideentfernt einen manuell gesetzten Übertrag. Der zurückgegebene Wertbrought_forwardist der Wert vor dem Zurücksetzen. Lies danach die Kontingente erneut, um den neu berechneten Wert zu erhalten.GET /rules/{rule_id}/audit-log,GET /allowance-types/{allowance_type_id}/audit-log,GET /members/{member_id}/rule-audit-logundGET /members/{member_id}/allowance-audit-logliefern neueste Einträge zuerst. Regel- und Kontingentart-Logs akzeptierentakevon 1 bis 200, Standard 100; Benutzerhistorien liefern höchstens 200 Einträge.changeshängt vomevent_typeab: Eine Regeländerung enthält{ field: { from, to } }, ein Regelwechselfrom_rule_idundto_rule_id. Das Löschen einer Regel mit Benutzern enthältreassigned_tooderreassigned_to_manualsowieeffective_from.- Ein Regelwechsel steht bei der neuen Regel und enthält
from_rule_id. Gelöschte Regeln behalten ihre Historie, die dann nur noch im Audit-Log der Kontingentart erreichbar ist.
allowance in diesem veralteten Endpunkt der absolute Zielwert für das Jahr. absentify speichert die Differenz zur Regel als eine wiederverwendete Anpassung Über API festgelegt. Gleiche Werte erzeugen keinen neuen Eintrag; der Regelbetrag entfernt diese Anpassung. Andere manuelle Anpassungen bleiben zusätzlich bestehen. Ohne Regel hat allowance in einem bereits konvertierten Workspace keine Wirkung. brought_forward, compensatory_time_off, set_as_default und disabled funktionieren weiterhin. Ein nicht gesendetes Feld behält seinen Wert, einschließlich overwrite_brought_forward. Während einer Migration oder nach einem Rollback wird die ganze Anfrage mit einem Konflikt abgelehnt; ein nicht abgedecktes Jahr gibt 404 zurück.
Die vollständige Liste der Endpunkte und ihrer Request- und Response-Schemas steht im interaktiven API-Bereich dieser Dokumentation.