The Timesheet object

Attributes

id string

Unique identifier for the object.

created_at string

ISO 8601 timestamp of when the object was created.

updated_at string

ISO 8601 timestamp of when the object was last updated.

status string

Default: draft

title string

Default: {employee_name}

company string
sales_invoice string
employee string
employee_name string
department string
user string
start_date string
end_date string
total_hours number

Default: 0

total_billable_hours number
total_billed_hours number
total_costing_amount number
total_billable_amount number

Default: 0

total_billed_amount number
per_billed number
note string
parent_project string
customer string
currency string
base_total_costing_amount number
base_total_billable_amount number
base_total_billed_amount number
exchange_rate number

Default: 1

The Timesheet object
{
  "id": "timesheet_abc123",
  "created_at": "2024-01-15T09: 30: 00Z",
  "updated_at": "2024-01-15T09: 30: 00Z",
  "status": "draft",
  "title": "{employee_name}",
  "company": "Example Corp",
  "sales_invoice": "sales_invoice_example",
  "employee": "employee_example",
  "employee_name": "employee_name_example",
  "department": "department_example",
  "user": "user_example",
  "start_date": "2024-01-15",
  "end_date": "2024-01-15",
  "total_hours": 0,
  "total_billable_hours": 0,
  "total_billed_hours": 0,
  "total_costing_amount": 0,
  "total_billable_amount": 0,
  "total_billed_amount": 0,
  "per_billed": 0,
  "note": "note_example",
  "parent_project": "parent_project_example",
  "customer": "customer_example",
  "currency": "USD",
  "base_total_costing_amount": 0,
  "base_total_billable_amount": 0,
  "base_total_billed_amount": 0,
  "exchange_rate": 1
}
GET /api/projects/timesheet/{id}

Retrieve a timesheet

Retrieves the details of an existing timesheet. Supply the unique timesheet ID that was returned from a previous request.

Path parameters

id string required

The identifier of the timesheet to retrieve.

Returns

Returns the timesheet object if a valid identifier was provided.

GET /api/projects/timesheet/{id}
curl https://api.overplane.dev/api/projects/timesheet/timesheet_abc123 \
  -H "Authorization: Bearer sk_test_..."
Response
{
  "id": "timesheet_abc123",
  "created_at": "2024-01-15T09: 30: 00Z",
  "updated_at": "2024-01-15T09: 30: 00Z",
  "status": "draft",
  "title": "{employee_name}",
  "company": "Example Corp",
  "sales_invoice": "sales_invoice_example",
  "employee": "employee_example",
  "employee_name": "employee_name_example",
  "department": "department_example",
  "user": "user_example",
  "start_date": "2024-01-15",
  "end_date": "2024-01-15",
  "total_hours": 0,
  "total_billable_hours": 0,
  "total_billed_hours": 0,
  "total_costing_amount": 0,
  "total_billable_amount": 0,
  "total_billed_amount": 0,
  "per_billed": 0,
  "note": "note_example",
  "parent_project": "parent_project_example",
  "customer": "customer_example",
  "currency": "USD",
  "base_total_costing_amount": 0,
  "base_total_billable_amount": 0,
  "base_total_billed_amount": 0,
  "exchange_rate": 1
}
GET /api/projects/timesheet

List all timesheets

Returns a list of timesheets. The results are sorted by creation date, with the most recently created appearing first.

Query parameters

limit integer

Maximum number of objects to return. Default: 20.

offset integer

Number of objects to skip for pagination. Default: 0.

Returns

A paginated list of timesheet objects.

GET /api/projects/timesheet
curl https://api.overplane.dev/api/projects/timesheet \
  -H "Authorization: Bearer sk_test_..."
Response
{
  "data": [
    {
      "id": "timesheet_abc123",
      "created_at": "2024-01-15T09: 30: 00Z",
      "updated_at": "2024-01-15T09: 30: 00Z",
      "status": "draft",
      "title": "{employee_name}",
      "company": "Example Corp",
      "sales_invoice": "sales_invoice_example",
      "employee": "employee_example",
      "employee_name": "employee_name_example",
      "department": "department_example",
      "user": "user_example",
      "start_date": "2024-01-15",
      "end_date": "2024-01-15",
      "total_hours": 0,
      "total_billable_hours": 0,
      "total_billed_hours": 0,
      "total_costing_amount": 0,
      "total_billable_amount": 0,
      "total_billed_amount": 0,
      "per_billed": 0,
      "note": "note_example",
      "parent_project": "parent_project_example",
      "customer": "customer_example",
      "currency": "USD",
      "base_total_costing_amount": 0,
      "base_total_billable_amount": 0,
      "base_total_billed_amount": 0,
      "exchange_rate": 1
    }
  ],
  "has_more": false,
  "total": 1
}
POST /api/projects/timesheet

Create a timesheet

Creates a new timesheet object.

Body parameters

status string

Default: draft

title string

Default: {employee_name}

company string
sales_invoice string
employee string
employee_name string
department string
user string
start_date string
end_date string
total_hours number

Default: 0

total_billable_hours number
total_billed_hours number
total_costing_amount number
total_billable_amount number

Default: 0

total_billed_amount number
per_billed number
note string
parent_project string
customer string
currency string
base_total_costing_amount number
base_total_billable_amount number
base_total_billed_amount number
exchange_rate number

Default: 1

Returns

Returns the newly created timesheet object if the call succeeded.

POST /api/projects/timesheet
curl https://api.overplane.dev/api/projects/timesheet \
  -H "Authorization: Bearer sk_test_..." \
  -X POST \
  -H "Content-Type: application/json"
Response
{
  "id": "timesheet_abc123",
  "created_at": "2024-01-15T09: 30: 00Z",
  "updated_at": "2024-01-15T09: 30: 00Z",
  "status": "draft",
  "title": "{employee_name}",
  "company": "Example Corp",
  "sales_invoice": "sales_invoice_example",
  "employee": "employee_example",
  "employee_name": "employee_name_example",
  "department": "department_example",
  "user": "user_example",
  "start_date": "2024-01-15",
  "end_date": "2024-01-15",
  "total_hours": 0,
  "total_billable_hours": 0,
  "total_billed_hours": 0,
  "total_costing_amount": 0,
  "total_billable_amount": 0,
  "total_billed_amount": 0,
  "per_billed": 0,
  "note": "note_example",
  "parent_project": "parent_project_example",
  "customer": "customer_example",
  "currency": "USD",
  "base_total_costing_amount": 0,
  "base_total_billable_amount": 0,
  "base_total_billed_amount": 0,
  "exchange_rate": 1
}
PATCH /api/projects/timesheet/{id}

Update a timesheet

Updates the specified timesheet by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

Path parameters

id string required

The identifier of the timesheet to update.

Body parameters

status string

Default: draft

title string

Default: {employee_name}

company string
sales_invoice string
employee string
employee_name string
department string
user string
start_date string
end_date string
total_hours number

Default: 0

total_billable_hours number
total_billed_hours number
total_costing_amount number
total_billable_amount number

Default: 0

total_billed_amount number
per_billed number
note string
parent_project string
customer string
currency string
base_total_costing_amount number
base_total_billable_amount number
base_total_billed_amount number
exchange_rate number

Default: 1

Returns

Returns the updated timesheet object.

PATCH /api/projects/timesheet/{id}
curl https://api.overplane.dev/api/projects/timesheet/timesheet_abc123 \
  -H "Authorization: Bearer sk_test_..." \
  -X PATCH \
  -H "Content-Type: application/json" \
  -d '{"status":"draft","title":"{employee_name}"}'
Response
{
  "id": "timesheet_abc123",
  "created_at": "2024-01-15T09: 30: 00Z",
  "updated_at": "2024-01-15T09: 30: 00Z",
  "status": "draft",
  "title": "{employee_name}",
  "company": "Example Corp",
  "sales_invoice": "sales_invoice_example",
  "employee": "employee_example",
  "employee_name": "employee_name_example",
  "department": "department_example",
  "user": "user_example",
  "start_date": "2024-01-15",
  "end_date": "2024-01-15",
  "total_hours": 0,
  "total_billable_hours": 0,
  "total_billed_hours": 0,
  "total_costing_amount": 0,
  "total_billable_amount": 0,
  "total_billed_amount": 0,
  "per_billed": 0,
  "note": "note_example",
  "parent_project": "parent_project_example",
  "customer": "customer_example",
  "currency": "USD",
  "base_total_costing_amount": 0,
  "base_total_billable_amount": 0,
  "base_total_billed_amount": 0,
  "exchange_rate": 1
}
DELETE /api/projects/timesheet/{id}

Delete a timesheet

Permanently deletes a timesheet. This cannot be undone.

Path parameters

id string required

The identifier of the timesheet to delete.

Returns

Returns a confirmation that the timesheet has been deleted.

DELETE /api/projects/timesheet/{id}
curl https://api.overplane.dev/api/projects/timesheet/timesheet_abc123 \
  -H "Authorization: Bearer sk_test_..." \
  -X DELETE
Response
{
  "id": "timesheet_abc123",
  "deleted": true
}
POST /api/projects/timesheet/{id}/submit

Submit a timesheet

Submits a draft timesheet, transitioning its status from draft to submitted.

Path parameters

id string required

The identifier of the timesheet to act on.

Returns

Returns the timesheet object with updated status.

POST /api/projects/timesheet/{id}/submit
curl https://api.overplane.dev/api/projects/timesheet/timesheet_abc123/submit \
  -H "Authorization: Bearer sk_test_..." \
  -X POST
Response
{
  "id": "timesheet_abc123",
  "created_at": "2024-01-15T09: 30: 00Z",
  "updated_at": "2024-01-15T09: 30: 00Z",
  "status": "draft",
  "title": "{employee_name}",
  "company": "Example Corp",
  "sales_invoice": "sales_invoice_example",
  "employee": "employee_example",
  "employee_name": "employee_name_example",
  "department": "department_example",
  "user": "user_example",
  "start_date": "2024-01-15",
  "end_date": "2024-01-15",
  "total_hours": 0,
  "total_billable_hours": 0,
  "total_billed_hours": 0,
  "total_costing_amount": 0,
  "total_billable_amount": 0,
  "total_billed_amount": 0,
  "per_billed": 0,
  "note": "note_example",
  "parent_project": "parent_project_example",
  "customer": "customer_example",
  "currency": "USD",
  "base_total_costing_amount": 0,
  "base_total_billable_amount": 0,
  "base_total_billed_amount": 0,
  "exchange_rate": 1
}
POST /api/projects/timesheet/{id}/cancel

Cancel a timesheet

Cancels a submitted timesheet, transitioning its status to cancelled.

Path parameters

id string required

The identifier of the timesheet to act on.

Returns

Returns the timesheet object with updated status.

POST /api/projects/timesheet/{id}/cancel
curl https://api.overplane.dev/api/projects/timesheet/timesheet_abc123/cancel \
  -H "Authorization: Bearer sk_test_..." \
  -X POST
Response
{
  "id": "timesheet_abc123",
  "created_at": "2024-01-15T09: 30: 00Z",
  "updated_at": "2024-01-15T09: 30: 00Z",
  "status": "draft",
  "title": "{employee_name}",
  "company": "Example Corp",
  "sales_invoice": "sales_invoice_example",
  "employee": "employee_example",
  "employee_name": "employee_name_example",
  "department": "department_example",
  "user": "user_example",
  "start_date": "2024-01-15",
  "end_date": "2024-01-15",
  "total_hours": 0,
  "total_billable_hours": 0,
  "total_billed_hours": 0,
  "total_costing_amount": 0,
  "total_billable_amount": 0,
  "total_billed_amount": 0,
  "per_billed": 0,
  "note": "note_example",
  "parent_project": "parent_project_example",
  "customer": "customer_example",
  "currency": "USD",
  "base_total_costing_amount": 0,
  "base_total_billable_amount": 0,
  "base_total_billed_amount": 0,
  "exchange_rate": 1
}

Line items

Child objects that belong to this timesheet. These are accessed via the parent's ID.

Timesheet Detail

Attributes

idx integer
timesheet_id string required
activity_type string
from_time string
expected_hours number
hours number
to_time string
completed boolean
project string
task string
billing_hours number
billing_rate number
billing_amount number
costing_rate number
costing_amount number
sales_invoice string
is_billable boolean
project_name string
description string
base_billing_rate number
base_billing_amount number
base_costing_rate number
base_costing_amount number

Endpoints

GET /api/projects/timesheet-detail?parent_id={id}
POST /api/projects/timesheet-detail
PATCH /api/projects/timesheet-detail/{id}
DELETE /api/projects/timesheet-detail/{id}
POST /api/projects/timesheet-detail/reorder
Timesheet Detail object
{
  "id": "timesheet-detail_abc123",
  "idx": 1,
  "timesheet_id": "timesheet_id_example",
  "activity_type": "activity_type_example",
  "from_time": "from_time_example",
  "expected_hours": 0,
  "hours": 0,
  "to_time": "to_time_example",
  "completed": false,
  "project": "project_example",
  "task": "task_example",
  "billing_hours": 0,
  "billing_rate": 0,
  "billing_amount": 0,
  "costing_rate": 0,
  "costing_amount": 0,
  "sales_invoice": "sales_invoice_example",
  "is_billable": false,
  "project_name": "project_name_example",
  "description": "description_example",
  "base_billing_rate": 0,
  "base_billing_amount": 0,
  "base_costing_rate": 0,
  "base_costing_amount": 0
}