---
title: "Timeoff Updated"
method: POST
path: "v1.timeoff.updated"
---

# Timeoff Updated

`POST v1.timeoff.updated` (webhook)

## Payload

- object
  - `id` string, required
  - `type` 'v1.timeoff.updated', required
  - `timestamp` string, required
  - `traceId` string, required
  - `actor` object, required
    - `id` string, required
    - `type` string, required
    - `name` string, required
  - `data` TimeOffRequest, required
    - `id` string, uuid, required
    - `createdAt` string, required
    - `status` 'pending' | 'approved' | 'rejected' | 'cancelled' | 'pending_sync' | 'sync_failed', required
    - `startDate` string, required
    - `endDate` string, required
    - `policyId` string, uuid, required
    - `policy` TimeOffPolicy
      - `id` string, uuid, required
      - `createdAt` string, required
      - `type` 'bereavement' | 'floating-holiday' | 'holiday-pay' | 'jury-duty' | 'learning-and-development' | 'paid-time-off' | 'vacation' | 'parental-leave' | 'personal-day' | 'sick' | 'volunteer' | 'weather' | 'wellness' | 'flex-day' | 'marriage-code' | 'unpaid-day' | 'absence' | 'custom', required
      - `name` string, required
      - `description` string, nullable, required
      - `accrualUnit` 'hours' | 'days', required
      - `yearlyAccrual` number, nullable: Allowance granted per accrual period, in `accrualUnit`.
      - `accrualPeriodRRule` string, nullable: RRULE describing when the balance resets.
      - `properties` unknown
      - `payCodeId` string, uuid, nullable, required: The pay code for which associated time will be paid out.
      - `payCode` PayCode
        - `id` string, uuid, required
        - `name` string, required
        - `shorthandName` string, required
        - `hexColor` string, required
        - `type` 'hours' | 'days' | 'money', required
        - `value` number, required
      - `enrolled` boolean: Only with `defaultsForProviderId`: whether that provider is enrolled in this policy.
      - `suggested` boolean: Only with `defaultsForProviderId`: most of the provider’s active teammates hold this policy. For vacation policies, only the single most common one is suggested.
      - `teammateCount` integer: Only with `defaultsForProviderId`: number of the provider’s active teammates enrolled in this policy.
    - `providerId` string, uuid, required
    - `provider` Provider
      - `id` string, uuid, required
      - `name` string, nullable, required
      - `email` string, required
      - `hireDate` string, nullable, required
      - `jobTitle` string, nullable, required: The provider's job title.
      - `status` 'onboarding' | 'active' | 'dismissed' | 'unmanaged', required
      - `teamId` string, uuid, nullable, required
      - `licensedRegions` string[], required
      - `employmentType` string, uuid, nullable, required
    - `note` string, nullable, required
    - `dailyHours` TimeOffDayEntry[], required: Represents the number of hours requested off for each day in the time off request.
      - `date` string, required: ISO timestamp of the date for the daily hours.
      - `duration` number, required: Number of hours requested off for this day.
    - `paidHours` number, required: The total number of hours that will be paid out for this time off request.
    - `rejectedById` string, uuid: Only present for rejected time off requests, the user who rejected the request.
    - `rejectedBy` User
      - `id` string, uuid, required
      - `type` 'user' | 'bot', required
      - `name` string, required
      - `email` string, required
      - `status` 'onboarding' | 'active' | 'dismissed' | 'unmanaged', required
      - `isAdmin` boolean, required
    - `rejectionReason` string, nullable: Only present for rejected time off requests, reason may be null for unspecified.
    - `syncError` object, nullable: Present for pending_sync requests, contains the latest Rippling sync status and error message.
      - `status` 'success' | 'failed', required
      - `message` string, nullable, required
      - `createdAt` string, required
    - `conflictResolution` 'delete' | 'deleteWithOpen' | 'callout' | 'calloutWithOpen' | 'keep' | 'keepWithOpen' | 'null', nullable: The shift conflict resolution strategy selected when this request was approved.
    - `isFullDay` boolean, nullable: Whether the request blocks whole calendar days rather than the dailyHours windows. Null for requests created before this field existed; treated as full-day when the policy accrues in days.

## Acknowledgement `200`

Webhook received successfully

---

[API](https://skmtc.dev/untetherlabs/apis/untether-labs-api.md) - [All operations](https://skmtc.dev/untetherlabs/apis/untether-labs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/untetherlabs/apis/untether-labs-api/revisions/143223935df3?raw)
