Deel · Capability
Endpoints — subpackage_timeTracking
Endpoints — subpackage_timeTracking. 8 operations. Lead operation: Generate timesheet upload url. Self-contained Naftiko capability covering one Deel business surface.
What You Can Do
POST
Gettimetrackingtimesheetsuploadurl
— Generate timesheet upload url
/v1/time-tracking/timesheets/upload-url
GET
Gettimetrackingtimesheetbyid
— Retrieve a timesheet
/v1/time-tracking/timesheets/{timesheet-id}
POST
Reviewtimetrackingtimesheet
— Review a submitted timesheet
/v1/time-tracking/timesheets/{timesheet-id}/review
POST
Createtimetrackingshiftrate
— Create a New Shift Rate
/v1/time-tracking/shift-rates
GET
Gettimetrackingshiftrates
— Retrieve a Paginated List of Shift Rates
/v1/time-tracking/shift-rates
DELETE
Deletetimetrackingshiftratebyexternalid
— Delete a Shift Rate by external ID
/v1/time-tracking/shift-rates/{external-id}
GET
Gettimetrackingshiftratebyexternalid
— Retrieve a Shift Rate by External ID
/v1/time-tracking/shift-rates/{external-id}
PATCH
Updatetimetrackingshiftratebyexternalid
— Update a shift rate
/v1/time-tracking/shift-rates/{external-id}
MCP Tools
generate-timesheet-upload-url
Generate timesheet upload url
retrieve-timesheet
Retrieve a timesheet
read-only
idempotent
review-submitted-timesheet
Review a submitted timesheet
create-new-shift-rate
Create a New Shift Rate
retrieve-paginated-list-shift-rates
Retrieve a Paginated List of Shift Rates
read-only
idempotent
delete-shift-rate-external-id
Delete a Shift Rate by external ID
idempotent
retrieve-shift-rate-external-id
Retrieve a Shift Rate by External ID
read-only
idempotent
update-shift-rate
Update a shift rate
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Endpoints — subpackage_timeTracking
description: 'Endpoints — subpackage_timeTracking. 8 operations. Lead operation: Generate timesheet upload url. Self-contained
Naftiko capability covering one Deel business surface.'
tags:
- Deel
- subpackage_timeTracking
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-timetracking
baseUri: https://api.letsdeel.com/rest/v2
description: Endpoints — subpackage_timeTracking business capability. Self-contained, no shared references.
resources:
- name: time-tracking-timesheets-upload-url
path: /time-tracking/timesheets/upload-url
operations:
- name: gettimetrackingtimesheetsuploadurl
method: POST
description: Generate timesheet upload url
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-tracking-timesheets-timesheet_id
path: /time-tracking/timesheets/{timesheet_id}
operations:
- name: gettimetrackingtimesheetbyid
method: GET
description: Retrieve a timesheet
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: timesheet_id
in: path
type: string
description: ID of the timesheet to fetch file for
required: true
- name: extend
in: query
type: string
description: Optional list of fields to extend in the response. Currently only `file_data` is supported, which includes
file details (file_id, file_name) and download URL.
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time-tracking-timesheets-timesheet_id-review
path: /time-tracking/timesheets/{timesheet_id}/review
operations:
- name: reviewtimetrackingtimesheet
method: POST
description: Review a submitted timesheet
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: timesheet_id
in: path
type: string
description: ID of the timesheet to review
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: time_tracking-shift_rates
path: /time_tracking/shift_rates
operations:
- name: createtimetrackingshiftrate
method: POST
description: Create a New Shift Rate
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: gettimetrackingshiftrates
method: GET
description: Retrieve a Paginated List of Shift Rates
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: limit
in: query
type: string
description: The maximum number of records to return per page. For example, '10' to return up to 10 records.
- name: offset
in: query
type: string
description: The starting index for the records to retrieve. For example, '0' for the first page or '10' for the
second page when limit=10.
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: time_tracking-shift_rates-external_id
path: /time_tracking/shift_rates/{external_id}
operations:
- name: deletetimetrackingshiftratebyexternalid
method: DELETE
description: Delete a Shift Rate by external ID
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: external_id
in: path
type: string
description: external ID
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: gettimetrackingshiftratebyexternalid
method: GET
description: Retrieve a Shift Rate by External ID
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: external_id
in: path
type: string
description: The unique external identifier of the shift rate to retrieve.
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: updatetimetrackingshiftratebyexternalid
method: PATCH
description: Update a shift rate
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: external_id
in: path
type: string
description: Unique identifier of the shift rate to be updated.
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-timetracking-rest
port: 8080
description: REST adapter for Endpoints — subpackage_timeTracking. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/time-tracking/timesheets/upload-url
name: time-tracking-timesheets-upload-url
description: REST surface for time-tracking-timesheets-upload-url.
operations:
- method: POST
name: gettimetrackingtimesheetsuploadurl
description: Generate timesheet upload url
call: platform-endpoints-subpackage-timetracking.gettimetrackingtimesheetsuploadurl
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/time-tracking/timesheets/{timesheet-id}
name: time-tracking-timesheets-timesheet-id
description: REST surface for time-tracking-timesheets-timesheet_id.
operations:
- method: GET
name: gettimetrackingtimesheetbyid
description: Retrieve a timesheet
call: platform-endpoints-subpackage-timetracking.gettimetrackingtimesheetbyid
with:
timesheet_id: rest.timesheet_id
extend: rest.extend
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-tracking/timesheets/{timesheet-id}/review
name: time-tracking-timesheets-timesheet-id-review
description: REST surface for time-tracking-timesheets-timesheet_id-review.
operations:
- method: POST
name: reviewtimetrackingtimesheet
description: Review a submitted timesheet
call: platform-endpoints-subpackage-timetracking.reviewtimetrackingtimesheet
with:
timesheet_id: rest.timesheet_id
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/time-tracking/shift-rates
name: time-tracking-shift-rates
description: REST surface for time_tracking-shift_rates.
operations:
- method: POST
name: createtimetrackingshiftrate
description: Create a New Shift Rate
call: platform-endpoints-subpackage-timetracking.createtimetrackingshiftrate
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: gettimetrackingshiftrates
description: Retrieve a Paginated List of Shift Rates
call: platform-endpoints-subpackage-timetracking.gettimetrackingshiftrates
with:
limit: rest.limit
offset: rest.offset
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/time-tracking/shift-rates/{external-id}
name: time-tracking-shift-rates-external-id
description: REST surface for time_tracking-shift_rates-external_id.
operations:
- method: DELETE
name: deletetimetrackingshiftratebyexternalid
description: Delete a Shift Rate by external ID
call: platform-endpoints-subpackage-timetracking.deletetimetrackingshiftratebyexternalid
with:
external_id: rest.external_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- method: GET
name: gettimetrackingshiftratebyexternalid
description: Retrieve a Shift Rate by External ID
call: platform-endpoints-subpackage-timetracking.gettimetrackingshiftratebyexternalid
with:
external_id: rest.external_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: updatetimetrackingshiftratebyexternalid
description: Update a shift rate
call: platform-endpoints-subpackage-timetracking.updatetimetrackingshiftratebyexternalid
with:
external_id: rest.external_id
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: platform-endpoints-subpackage-timetracking-mcp
port: 9090
transport: http
description: MCP adapter for Endpoints — subpackage_timeTracking. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: generate-timesheet-upload-url
description: Generate timesheet upload url
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-timetracking.gettimetrackingtimesheetsuploadurl
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-timesheet
description: Retrieve a timesheet
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timetracking.gettimetrackingtimesheetbyid
with:
timesheet_id: tools.timesheet_id
extend: tools.extend
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: review-submitted-timesheet
description: Review a submitted timesheet
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-timetracking.reviewtimetrackingtimesheet
with:
timesheet_id: tools.timesheet_id
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: create-new-shift-rate
description: Create a New Shift Rate
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-timetracking.createtimetrackingshiftrate
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-paginated-list-shift-rates
description: Retrieve a Paginated List of Shift Rates
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timetracking.gettimetrackingshiftrates
with:
limit: tools.limit
offset: tools.offset
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: delete-shift-rate-external-id
description: Delete a Shift Rate by external ID
hints:
readOnly: false
destructive: true
idempotent: true
call: platform-endpoints-subpackage-timetracking.deletetimetrackingshiftratebyexternalid
with:
external_id: tools.external_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: retrieve-shift-rate-external-id
description: Retrieve a Shift Rate by External ID
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timetracking.gettimetrackingshiftratebyexternalid
with:
external_id: tools.external_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: update-shift-rate
description: Update a shift rate
hints:
readOnly: false
destructive: false
idempotent: true
call: platform-endpoints-subpackage-timetracking.updatetimetrackingshiftratebyexternalid
with:
external_id: tools.external_id
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.