Deel · Capability
Endpoints — subpackage_timesheets
Endpoints — subpackage_timesheets. 6 operations. Lead operation: List of timesheets by contract. Self-contained Naftiko capability covering one Deel business surface.
What You Can Do
GET
Getcontracttimesheets
— List of timesheets by contract
/v1/contracts/{contract-id}/timesheets
POST
Createtimesheet
— Create a timesheet entry
/v1/timesheets
GET
Gettimesheets
— List of timesheets
/v1/timesheets
GET
Gettimesheetbyid
— Retrieve a single timesheet entry
/v1/timesheets/{id}
PATCH
Updatetimesheet
— Update a timesheet entry
/v1/timesheets/{id}
POST
Createtimesheetreview
— Review a single timesheet
/v1/timesheets/{id}/reviews
MCP Tools
list-timesheets-contract
List of timesheets by contract
read-only
idempotent
create-timesheet-entry
Create a timesheet entry
list-timesheets
List of timesheets
read-only
idempotent
retrieve-single-timesheet-entry
Retrieve a single timesheet entry
read-only
idempotent
update-timesheet-entry
Update a timesheet entry
idempotent
review-single-timesheet
Review a single timesheet
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Endpoints — subpackage_timesheets
description: 'Endpoints — subpackage_timesheets. 6 operations. Lead operation: List of timesheets by contract. Self-contained
Naftiko capability covering one Deel business surface.'
tags:
- Deel
- subpackage_timesheets
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
DEEL_API_KEY: DEEL_API_KEY
capability:
consumes:
- type: http
namespace: contracts-endpoints-subpackage-timesheets
baseUri: https://api.letsdeel.com/rest/v2
description: Endpoints — subpackage_timesheets business capability. Self-contained, no shared references.
resources:
- name: contracts-contract_id-timesheets
path: /contracts/{contract_id}/timesheets
operations:
- name: getcontracttimesheets
method: GET
description: List of timesheets by contract
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: contract_id
in: path
type: string
description: Deel contract id.
required: true
- name: contract_types
in: query
type: string
description: Types of contracts to filter.
- name: statuses
in: query
type: string
description: Statuses of timesheets to filter.
- name: reporter_id
in: query
type: string
description: ID of an existing profile
- name: date_from
in: query
type: string
description: 'Filtered results will include records created on or after the provided date. Short date in format
ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
- name: date_to
in: query
type: string
description: 'Filtered results will include records created before the provided date. Short date in format ISO-8601
(YYYY-MM-DD). For example: 2022-12-31.'
- name: limit
in: query
type: string
description: 'Return a page of results with given number of records; NOTE: technically ALL query parameters are
strings or array of strings'
- name: offset
in: query
type: string
description: Return a page of results after given index of row
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: timesheets
path: /timesheets
operations:
- name: createtimesheet
method: POST
description: Create a timesheet entry
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: gettimesheets
method: GET
description: List of timesheets
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: contract_id
in: query
type: string
description: Id of an Deel contract.
- name: contract_types
in: query
type: string
description: types of contracts to filter
- name: statuses
in: query
type: string
- name: reporter_id
in: query
type: string
- name: date_from
in: query
type: string
- name: date_to
in: query
type: string
- name: limit
in: query
type: string
- name: offset
in: query
type: string
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: timesheets-id
path: /timesheets/{id}
operations:
- name: gettimesheetbyid
method: GET
description: Retrieve a single timesheet entry
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: ID of an existing timesheet
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: updatetimesheet
method: PATCH
description: Update a timesheet entry
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: ID of an existing timesheet.
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: timesheets-id-reviews
path: /timesheets/{id}/reviews
operations:
- name: createtimesheetreview
method: POST
description: Review a single timesheet
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: ID of an existing timesheet
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: contracts-endpoints-subpackage-timesheets-rest
port: 8080
description: REST adapter for Endpoints — subpackage_timesheets. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/contracts/{contract-id}/timesheets
name: contracts-contract-id-timesheets
description: REST surface for contracts-contract_id-timesheets.
operations:
- method: GET
name: getcontracttimesheets
description: List of timesheets by contract
call: contracts-endpoints-subpackage-timesheets.getcontracttimesheets
with:
contract_id: rest.contract_id
contract_types: rest.contract_types
statuses: rest.statuses
reporter_id: rest.reporter_id
date_from: rest.date_from
date_to: rest.date_to
limit: rest.limit
offset: rest.offset
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/timesheets
name: timesheets
description: REST surface for timesheets.
operations:
- method: POST
name: createtimesheet
description: Create a timesheet entry
call: contracts-endpoints-subpackage-timesheets.createtimesheet
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: gettimesheets
description: List of timesheets
call: contracts-endpoints-subpackage-timesheets.gettimesheets
with:
contract_id: rest.contract_id
contract_types: rest.contract_types
statuses: rest.statuses
reporter_id: rest.reporter_id
date_from: rest.date_from
date_to: rest.date_to
limit: rest.limit
offset: rest.offset
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/timesheets/{id}
name: timesheets-id
description: REST surface for timesheets-id.
operations:
- method: GET
name: gettimesheetbyid
description: Retrieve a single timesheet entry
call: contracts-endpoints-subpackage-timesheets.gettimesheetbyid
with:
id: rest.id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: updatetimesheet
description: Update a timesheet entry
call: contracts-endpoints-subpackage-timesheets.updatetimesheet
with:
id: rest.id
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/timesheets/{id}/reviews
name: timesheets-id-reviews
description: REST surface for timesheets-id-reviews.
operations:
- method: POST
name: createtimesheetreview
description: Review a single timesheet
call: contracts-endpoints-subpackage-timesheets.createtimesheetreview
with:
id: rest.id
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: contracts-endpoints-subpackage-timesheets-mcp
port: 9090
transport: http
description: MCP adapter for Endpoints — subpackage_timesheets. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: list-timesheets-contract
description: List of timesheets by contract
hints:
readOnly: true
destructive: false
idempotent: true
call: contracts-endpoints-subpackage-timesheets.getcontracttimesheets
with:
contract_id: tools.contract_id
contract_types: tools.contract_types
statuses: tools.statuses
reporter_id: tools.reporter_id
date_from: tools.date_from
date_to: tools.date_to
limit: tools.limit
offset: tools.offset
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: create-timesheet-entry
description: Create a timesheet entry
hints:
readOnly: false
destructive: false
idempotent: false
call: contracts-endpoints-subpackage-timesheets.createtimesheet
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-timesheets
description: List of timesheets
hints:
readOnly: true
destructive: false
idempotent: true
call: contracts-endpoints-subpackage-timesheets.gettimesheets
with:
contract_id: tools.contract_id
contract_types: tools.contract_types
statuses: tools.statuses
reporter_id: tools.reporter_id
date_from: tools.date_from
date_to: tools.date_to
limit: tools.limit
offset: tools.offset
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: retrieve-single-timesheet-entry
description: Retrieve a single timesheet entry
hints:
readOnly: true
destructive: false
idempotent: true
call: contracts-endpoints-subpackage-timesheets.gettimesheetbyid
with:
id: tools.id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: update-timesheet-entry
description: Update a timesheet entry
hints:
readOnly: false
destructive: false
idempotent: true
call: contracts-endpoints-subpackage-timesheets.updatetimesheet
with:
id: tools.id
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: review-single-timesheet
description: Review a single timesheet
hints:
readOnly: false
destructive: false
idempotent: false
call: contracts-endpoints-subpackage-timesheets.createtimesheetreview
with:
id: tools.id
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.