Deel · Capability
Endpoints — subpackage_timeOff
Endpoints — subpackage_timeOff. 13 operations. Lead operation: Create time-off request. Self-contained Naftiko capability covering one Deel business surface.
What You Can Do
POST
Createtimeoffrequest
— Create time-off request
/v1/time-offs
GET
Listtimeoffrequestsfororganization
— List time-off requests for Organization
/v1/time-offs
GET
Gettimeoffdailies
— Get Work Schedule and Holidays
/v1/time-offs/dailies
POST
Synctimeoffglobalpayroll
— External HR Time Off Synchronization
/v1/time-offs/global-payroll/sync
GET
Gettimeoffpolicyvalidationtemplates
— Retrieve policy validation templates
/v1/time-offs/policy-validation-templates
GET
Gettimeoffprofile
— List time-off requests
/v1/time-offs/profile/{hris-profile-id}
GET
Gettimeoffentitlements
— Get Profile Entitlements
/v1/time-offs/profile/{hris-profile-id}/entitlements
GET
Gettimeoffpolicies
— List policies
/v1/time-offs/profile/{hris-profile-id}/policies
POST
Reviewtimeoffrequest
— Approve/Reject time-off requests
/v1/time-offs/review
GET
Gettimeoffevents
— Get Time Off Events for Profile
/v1/time-offs/time-off-events
POST
Validatetimeoff
— Validate time-off request
/v1/time-offs/validate
DELETE
Deletetimeoffrequest
— Cancel time-off request
/v1/time-offs/{time-off-id}
PATCH
Updatetimeoffrequest
— Update time-off request
/v1/time-offs/{time-off-id}
MCP Tools
create-time-off-request
Create time-off request
list-time-off-requests-organization
List time-off requests for Organization
read-only
idempotent
get-work-schedule-and-holidays
Get Work Schedule and Holidays
read-only
idempotent
external-hr-time-off-synchronization
External HR Time Off Synchronization
retrieve-policy-validation-templates
Retrieve policy validation templates
read-only
idempotent
list-time-off-requests
List time-off requests
read-only
idempotent
get-profile-entitlements
Get Profile Entitlements
read-only
idempotent
list-policies
List policies
read-only
idempotent
approve-reject-time-off-requests
Approve/Reject time-off requests
get-time-off-events-profile
Get Time Off Events for Profile
read-only
idempotent
validate-time-off-request
Validate time-off request
read-only
cancel-time-off-request
Cancel time-off request
idempotent
update-time-off-request
Update time-off request
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Endpoints — subpackage_timeOff
description: 'Endpoints — subpackage_timeOff. 13 operations. Lead operation: Create time-off request. Self-contained Naftiko
capability covering one Deel business surface.'
tags:
- Deel
- subpackage_timeOff
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
DEEL_API_KEY: DEEL_API_KEY
capability:
consumes:
- type: http
namespace: platform-endpoints-subpackage-timeoff
baseUri: https://api.letsdeel.com/rest/v2
description: Endpoints — subpackage_timeOff business capability. Self-contained, no shared references.
resources:
- name: time_offs
path: /time_offs
operations:
- name: createtimeoffrequest
method: POST
description: Create time-off request
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: listtimeoffrequestsfororganization
method: GET
description: List time-off requests for Organization
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: status
in: query
type: array
description: Time off status
- name: time_off_ids
in: query
type: array
description: Time off ids
- name: start_date
in: query
type: string
description: Start date of time off
- name: end_date
in: query
type: string
description: End date of time off
- name: approval_start_date
in: query
type: string
description: Approval start date
- name: approval_end_date
in: query
type: string
description: Approval end date
- name: updated_start_date
in: query
type: string
description: Updated start date
- name: updated_end_date
in: query
type: string
description: Updated end date
- name: page_size
in: query
type: integer
description: Page size
- name: policy_types
in: query
type: array
description: Policy types
- name: next
in: query
type: string
description: Next page
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_offs-dailies
path: /time_offs/dailies
operations:
- name: gettimeoffdailies
method: GET
description: Get Work Schedule and Holidays
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: start_date
in: query
type: string
description: Start date of non working days date range
- name: end_date
in: query
type: string
description: End date of non working days date range
- name: hris_profile_ids
in: query
type: array
description: HRIS profile ids
- name: countries
in: query
type: array
description: List of countries to be fetched
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_offs-global-payroll-sync
path: /time_offs/global-payroll/sync
operations:
- name: synctimeoffglobalpayroll
method: POST
description: External HR Time Off Synchronization
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: time_offs-policy-validation-templates
path: /time_offs/policy-validation-templates
operations:
- name: gettimeoffpolicyvalidationtemplates
method: GET
description: Retrieve policy validation templates
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: countries
in: query
type: array
description: List of countries (ISO 3166-1 alpha-2 codes) to fetch policy templates and types for.
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_offs-profile-hris_profile_id
path: /time_offs/profile/{hris_profile_id}
operations:
- name: gettimeoffprofile
method: GET
description: List time-off requests
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: hris_profile_id
in: path
type: string
description: HRIS profile id
required: true
- name: status
in: query
type: array
description: Time off status
- name: time_off_ids
in: query
type: array
description: Time off ids
- name: start_date
in: query
type: string
description: Start date of time off
- name: end_date
in: query
type: string
description: End date of time off
- name: approval_start_date
in: query
type: string
description: Approval start date
- name: approval_end_date
in: query
type: string
description: Approval end date
- name: updated_start_date
in: query
type: string
description: Updated start date
- name: updated_end_date
in: query
type: string
description: Updated end date
- name: page_size
in: query
type: integer
description: Page size
- name: policy_types
in: query
type: array
description: Policy types
- name: next
in: query
type: string
description: Next page
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_offs-profile-hris_profile_id-entitlements
path: /time_offs/profile/{hris_profile_id}/entitlements
operations:
- name: gettimeoffentitlements
method: GET
description: Get Profile Entitlements
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: hris_profile_id
in: path
type: string
description: HRIS profile ID
required: true
- name: policy_type_name
in: query
type: string
- name: tracking_period_date
in: query
type: string
description: Tracking period date
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_offs-profile-hris_profile_id-policies
path: /time_offs/profile/{hris_profile_id}/policies
operations:
- name: gettimeoffpolicies
method: GET
description: List policies
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: hris_profile_id
in: path
type: string
description: hrisProfileId id.
required: true
- name: policy_type_name
in: query
type: string
description: Policy type name.
- name: policy_type_id
in: query
type: string
description: policy type id
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_offs-review
path: /time_offs/review
operations:
- name: reviewtimeoffrequest
method: POST
description: Approve/Reject time-off requests
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: time_offs-time-off-events
path: /time_offs/time-off-events
operations:
- name: gettimeoffevents
method: GET
description: Get Time Off Events for Profile
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: hris_profile_id
in: query
type: string
description: Worker hris profile id
required: true
- name: time_off_type_id
in: query
type: string
description: Time off type id
- name: policy_id
in: query
type: string
description: Policy id
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_offs-validate
path: /time_offs/validate
operations:
- name: validatetimeoff
method: POST
description: Validate time-off request
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: time_offs-time_off_id
path: /time_offs/{time_off_id}
operations:
- name: deletetimeoffrequest
method: DELETE
description: Cancel time-off request
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: time_off_id
in: path
type: string
description: Time off request id
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: updatetimeoffrequest
method: PATCH
description: Update time-off request
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: time_off_id
in: path
type: string
description: Time off request id
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
authentication:
type: bearer
token: '{{env.DEEL_API_KEY}}'
exposes:
- type: rest
namespace: platform-endpoints-subpackage-timeoff-rest
port: 8080
description: REST adapter for Endpoints — subpackage_timeOff. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/time-offs
name: time-offs
description: REST surface for time_offs.
operations:
- method: POST
name: createtimeoffrequest
description: Create time-off request
call: platform-endpoints-subpackage-timeoff.createtimeoffrequest
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: listtimeoffrequestsfororganization
description: List time-off requests for Organization
call: platform-endpoints-subpackage-timeoff.listtimeoffrequestsfororganization
with:
status: rest.status
time_off_ids: rest.time_off_ids
start_date: rest.start_date
end_date: rest.end_date
approval_start_date: rest.approval_start_date
approval_end_date: rest.approval_end_date
updated_start_date: rest.updated_start_date
updated_end_date: rest.updated_end_date
page_size: rest.page_size
policy_types: rest.policy_types
next: rest.next
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/dailies
name: time-offs-dailies
description: REST surface for time_offs-dailies.
operations:
- method: GET
name: gettimeoffdailies
description: Get Work Schedule and Holidays
call: platform-endpoints-subpackage-timeoff.gettimeoffdailies
with:
start_date: rest.start_date
end_date: rest.end_date
hris_profile_ids: rest.hris_profile_ids
countries: rest.countries
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/global-payroll/sync
name: time-offs-global-payroll-sync
description: REST surface for time_offs-global-payroll-sync.
operations:
- method: POST
name: synctimeoffglobalpayroll
description: External HR Time Off Synchronization
call: platform-endpoints-subpackage-timeoff.synctimeoffglobalpayroll
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/policy-validation-templates
name: time-offs-policy-validation-templates
description: REST surface for time_offs-policy-validation-templates.
operations:
- method: GET
name: gettimeoffpolicyvalidationtemplates
description: Retrieve policy validation templates
call: platform-endpoints-subpackage-timeoff.gettimeoffpolicyvalidationtemplates
with:
countries: rest.countries
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/profile/{hris-profile-id}
name: time-offs-profile-hris-profile-id
description: REST surface for time_offs-profile-hris_profile_id.
operations:
- method: GET
name: gettimeoffprofile
description: List time-off requests
call: platform-endpoints-subpackage-timeoff.gettimeoffprofile
with:
hris_profile_id: rest.hris_profile_id
status: rest.status
time_off_ids: rest.time_off_ids
start_date: rest.start_date
end_date: rest.end_date
approval_start_date: rest.approval_start_date
approval_end_date: rest.approval_end_date
updated_start_date: rest.updated_start_date
updated_end_date: rest.updated_end_date
page_size: rest.page_size
policy_types: rest.policy_types
next: rest.next
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/profile/{hris-profile-id}/entitlements
name: time-offs-profile-hris-profile-id-entitlements
description: REST surface for time_offs-profile-hris_profile_id-entitlements.
operations:
- method: GET
name: gettimeoffentitlements
description: Get Profile Entitlements
call: platform-endpoints-subpackage-timeoff.gettimeoffentitlements
with:
hris_profile_id: rest.hris_profile_id
policy_type_name: rest.policy_type_name
tracking_period_date: rest.tracking_period_date
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/profile/{hris-profile-id}/policies
name: time-offs-profile-hris-profile-id-policies
description: REST surface for time_offs-profile-hris_profile_id-policies.
operations:
- method: GET
name: gettimeoffpolicies
description: List policies
call: platform-endpoints-subpackage-timeoff.gettimeoffpolicies
with:
hris_profile_id: rest.hris_profile_id
policy_type_name: rest.policy_type_name
policy_type_id: rest.policy_type_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/review
name: time-offs-review
description: REST surface for time_offs-review.
operations:
- method: POST
name: reviewtimeoffrequest
description: Approve/Reject time-off requests
call: platform-endpoints-subpackage-timeoff.reviewtimeoffrequest
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/time-off-events
name: time-offs-time-off-events
description: REST surface for time_offs-time-off-events.
operations:
- method: GET
name: gettimeoffevents
description: Get Time Off Events for Profile
call: platform-endpoints-subpackage-timeoff.gettimeoffevents
with:
hris_profile_id: rest.hris_profile_id
time_off_type_id: rest.time_off_type_id
policy_id: rest.policy_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/validate
name: time-offs-validate
description: REST surface for time_offs-validate.
operations:
- method: POST
name: validatetimeoff
description: Validate time-off request
call: platform-endpoints-subpackage-timeoff.validatetimeoff
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/time-offs/{time-off-id}
name: time-offs-time-off-id
description: REST surface for time_offs-time_off_id.
operations:
- method: DELETE
name: deletetimeoffrequest
description: Cancel time-off request
call: platform-endpoints-subpackage-timeoff.deletetimeoffrequest
with:
time_off_id: rest.time_off_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: updatetimeoffrequest
description: Update time-off request
call: platform-endpoints-subpackage-timeoff.updatetimeoffrequest
with:
time_off_id: rest.time_off_id
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: platform-endpoints-subpackage-timeoff-mcp
port: 9090
transport: http
description: MCP adapter for Endpoints — subpackage_timeOff. One tool per consumed operation, routed inline through this
capability's consumes block.
tools:
- name: create-time-off-request
description: Create time-off request
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-timeoff.createtimeoffrequest
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-time-off-requests-organization
description: List time-off requests for Organization
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.listtimeoffrequestsfororganization
with:
status: tools.status
time_off_ids: tools.time_off_ids
start_date: tools.start_date
end_date: tools.end_date
approval_start_date: tools.approval_start_date
approval_end_date: tools.approval_end_date
updated_start_date: tools.updated_start_date
updated_end_date: tools.updated_end_date
page_size: tools.page_size
policy_types: tools.policy_types
next: tools.next
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: get-work-schedule-and-holidays
description: Get Work Schedule and Holidays
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.gettimeoffdailies
with:
start_date: tools.start_date
end_date: tools.end_date
hris_profile_ids: tools.hris_profile_ids
countries: tools.countries
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: external-hr-time-off-synchronization
description: External HR Time Off Synchronization
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-timeoff.synctimeoffglobalpayroll
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-policy-validation-templates
description: Retrieve policy validation templates
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.gettimeoffpolicyvalidationtemplates
with:
countries: tools.countries
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: list-time-off-requests
description: List time-off requests
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.gettimeoffprofile
with:
hris_profile_id: tools.hris_profile_id
status: tools.status
time_off_ids: tools.time_off_ids
start_date: tools.start_date
end_date: tools.end_date
approval_start_date: tools.approval_start_date
approval_end_date: tools.approval_end_date
updated_start_date: tools.updated_start_date
updated_end_date: tools.updated_end_date
page_size: tools.page_size
policy_types: tools.policy_types
next: tools.next
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: get-profile-entitlements
description: Get Profile Entitlements
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.gettimeoffentitlements
with:
hris_profile_id: tools.hris_profile_id
policy_type_name: tools.policy_type_name
tracking_period_date: tools.tracking_period_date
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: list-policies
description: List policies
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.gettimeoffpolicies
with:
hris_profile_id: tools.hris_profile_id
policy_type_name: tools.policy_type_name
policy_type_id: tools.policy_type_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: approve-reject-time-off-requests
description: Approve/Reject time-off requests
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-timeoff.reviewtimeoffrequest
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-time-off-events-profile
description: Get Time Off Events for Profile
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.gettimeoffevents
with:
hris_profile_id: tools.hris_profile_id
time_off_type_id: tools.time_off_type_id
policy_id: tools.policy_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: validate-time-off-request
description: Validate time-off request
hints:
readOnly: true
destructive: false
idempotent: false
call: platform-endpoints-subpackage-timeoff.validatetimeoff
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: cancel-time-off-request
description: Cancel time-off request
hints:
readOnly: false
destructive: true
idempotent: true
call: platform-endpoints-subpackage-timeoff.deletetimeoffrequest
with:
time_off_id: tools.time_off_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: update-time-off-request
description: Update time-off request
hints:
readOnly: false
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timeoff.updatetimeoffrequest
with:
time_off_id: tools.time_off_id
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.