Skip to content

Timesheet Submissions

Timesheet Submissions hold a set of time entries for a specified week, and can be approved, rejected, or canceled.

You can enable timesheet submissions and approval in your project settings. Once enabled, time entries must be approved through a Timesheet Submission before it is invoiceable.

Note: Each Timesheet Submission can only be associated with a single project. So when a timesheet is submitted through the UI with time entries for multiple projects, a separate Timesheet Submission object is created for each project in the backend.

This section contains endpoints to approve, reject, or cancel a single timesheet submission. To approve, reject, or cancel multiple timesheet submissions at once, see Timesheet Approvals, Timesheet Cancellations, and Timesheet Rejections.

Fetching a list of Timesheet Submissions

Request

This endpoint returns structured Timesheet Submission objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the results array and will be indexed by ID in the timesheet_submissions top-level JSON key. Please see our Response Format section for more information.

Query
activeboolean

Returns only active submissions.

created_afterstring, (date-time)

Filter for records created after a specified datetime. The datetime must be in ISO 8601 format.

created_beforestring, (date-time)

Filter for records created before a specified datetime. The datetime must be in ISO 8601 format.

end_datestring, (date)

Limit Timesheet Submissions to the week ending with this date. The date must be in ISO 8601 format.

external_reference_external_messagestring

Filter the objects based on the external message of their associated external references. This is an exact match.

external_reference_external_statusstring

Filter by the status of the external object in the external system.

external_reference_service_modelstring

Filter by the type of the external object this external reference belongs to.

external_reference_service_model_refinteger, (int32)

Filter by the id of the external object this external reference belongs to.

external_reference_service_model_refsstring

Filter for objects that correlate to the specified external object IDs. Provide a comma-separated list of up to 200 external IDs.

external_reference_service_namestring

Filter by the name of the provider for integration.

external_reference_statusstring

Filter by the status of the integration, this can be successful or fail.

has_external_referencesboolean

Filter by whether or not the object has external references.

includestring

Any of the below associations can be included in your request by providing the include param, e.g. include=association1,association2.

  • external_references (ExternalReference) - Includes references to external integrations for this object.
  • time_entries (TimeEntry) - Reference the Time Entries that belong to the Timesheet Submissions.
  • user (User) - Includes user who owns the line items on the submission.
  • workspace (Workspace) - Includes workspace to which the submission belongs.
not_cancelledboolean

Returns only submissions that are not cancelled.

onlystring

Allows you to request one or more resources directly by ID. Multiple IDs can be supplied in a comma separated list, like GET /api/v1/workspaces.json?only=5,6,7.

orderstring

Supply order with the name of a valid sort field for the endpoint and a direction.

Valid values: date:asc and date:desc.

Default:"date:desc"
pageinteger, (int32)
Default:1
per_pageinteger, (int32), <= 200
Default:20
start_datestring, (date)

Limit Timesheet Submissions to the week starting with this date. The date must be in ISO 8601 format.

start_date_afterstring, (date)

Filter for Timesheet Submissions that start on OR after a specified datetime. The date must be in ISO 8601 format.

statusesstring

Returns submissions with the statuses specified. Multiple statuses can be supplied in a comma separated list. Valid values: ‘new’, ‘cancelled’, ‘rejected’, and ‘approved’.

updated_afterstring, (date-time)

Filter for records updated after a specified datetime. The datetime must be in ISO 8601 format.

updated_beforestring, (date-time)

Filter for records updated before a specified datetime. The datetime must be in ISO 8601 format.

user_idsstring

Only includes submissions associated with the specified user ids.

without_external_reference_service_namestring

Exclude by the existence of an external reference with the specified service name.

workspace_idinteger, (int32)

Ordered by the submission's workspace id.

workspace_idsstring

Only includes submissions associated with the specified workspace ids.

GET
/timesheet_submissions
curl -i -X GET \
  'https://api.mavenlink.com/api/v1/timesheet_submissions?active=true&created_after=2019-08-24T14%3A15%3A22Z&created_before=2019-08-24T14%3A15%3A22Z&end_date=2019-08-24&external_reference_external_message=string&external_reference_external_status=string&external_reference_service_model=string&external_reference_service_model_ref=0&external_reference_service_model_refs=string&external_reference_service_name=string&external_reference_status=string&has_external_references=true&include=string&not_cancelled=true&only=string&order=date%3Adesc&page=1&per_page=20&start_date=2019-08-24&start_date_after=2019-08-24&statuses=string&updated_after=2019-08-24T14%3A15%3A22Z&updated_before=2019-08-24T14%3A15%3A22Z&user_ids=string&without_external_reference_service_name=string&workspace_id=0&workspace_ids=string'

Responses

A list of Timesheet Submissions have been retrieved.

Bodyapplication/json
countinteger, (int32)
metaobject
resultsArray of objects
timesheet_submissionsobject
external_referencesobject
usersobject
workspacesobject
time_entriesobject
Response
{ "count": 0, "meta": { "count": 0, "page_count": 0, "page_number": 0, "page_size": 0 }, "results": [ { "key": "string", "id": "string" } ], "timesheet_submissions": { "property1": { "comment": "string", "created_at": "2019-08-24T14:15:22Z", "currency": "string", "currency_base_unit": 0, "currency_symbol": "string", "current_resolution_created_at_date": "2019-08-24T14:15:22Z", "current_resolution_creator_id": 0, "current_resolution_description": "string", "end_date": "2019-08-24", "external_reference_ids": [ "string" ], "line_item_total_formatted": "string", "line_item_total_in_cents": 0, "permissions": { "can_cancel_submission": true, "can_approve_submission": true, "can_reject_submission": true, "can_resubmit_submission": true }, "resolution_description": "string", "start_date": "2019-08-24", "status": "string", "time_entry_ids": [ "string" ], "title": "string", "type": "string", "updated_at": "2019-08-24T14:15:22Z", "user_id": "string", "workspace_id": "string" }, "property2": { "comment": "string", "created_at": "2019-08-24T14:15:22Z", "currency": "string", "currency_base_unit": 0, "currency_symbol": "string", "current_resolution_created_at_date": "2019-08-24T14:15:22Z", "current_resolution_creator_id": 0, "current_resolution_description": "string", "end_date": "2019-08-24", "external_reference_ids": [ "string" ], "line_item_total_formatted": "string", "line_item_total_in_cents": 0, "permissions": { "can_cancel_submission": true, "can_approve_submission": true, "can_reject_submission": true, "can_resubmit_submission": true }, "resolution_description": "string", "start_date": "2019-08-24", "status": "string", "time_entry_ids": [ "string" ], "title": "string", "type": "string", "updated_at": "2019-08-24T14:15:22Z", "user_id": "string", "workspace_id": "string" } }, "external_references": { "property1": { "created_at": "2019-08-24T14:15:22Z", "external_link": "string", "external_message": "string", "external_status": "string", "last_synced_at": "2019-08-24T14:15:22Z", "locked": true, "service_model": "string", "service_model_ref": "string", "service_name": "string", "status": "string", "subject_id": 0, "subject_ref": { "key": "string", "id": "string" }, "subject_type": "string", "updated_at": "2019-08-24T14:15:22Z" }, "property2": { "created_at": "2019-08-24T14:15:22Z", "external_link": "string", "external_message": "string", "external_status": "string", "last_synced_at": "2019-08-24T14:15:22Z", "locked": true, "service_model": "string", "service_model_ref": "string", "service_name": "string", "status": "string", "subject_id": 0, "subject_ref": { "key": "string", "id": "string" }, "subject_type": "string", "updated_at": "2019-08-24T14:15:22Z" } }, "users": { "property1": { "abbreviated_timezone": "string", "account_membership_id": "string", "bio": "string", "city": "string", "classification": "string", "country": "string", "custom_field_value_ids": [ "string" ], "email_address": "string", "external_reference_ids": [ "string" ], "full_name": "string", "headline": "string", "last_site_activity": "2019-08-24T14:15:22Z", "manager_id": "string", "photo_path": "string", "role_id": "string", "skill_ids": [ "string" ], "skill_membership_ids": [ "string" ], "state": "string", "website": "string", "work_sample_ids": [ "string" ] }, "property2": { "abbreviated_timezone": "string", "account_membership_id": "string", "bio": "string", "city": "string", "classification": "string", "country": "string", "custom_field_value_ids": [ "string" ], "email_address": "string", "external_reference_ids": [ "string" ], "full_name": "string", "headline": "string", "last_site_activity": "2019-08-24T14:15:22Z", "manager_id": "string", "photo_path": "string", "role_id": "string", "skill_ids": [ "string" ], "skill_membership_ids": [ "string" ], "state": "string", "website": "string", "work_sample_ids": [ "string" ] } }, "workspaces": { "property1": { "access_level": "string", "account_color_id": "string", "account_id": 0, "account_insights_mapping_ids": [ "string" ], "actual_fees_includes_additional_line_items": true, "actual_fees_includes_expenses": true, "approver_id": "string", "approver_ids": [ "string" ], "archived": true, "billable_minutes": 0, "billing_milestone_ids": [ "string" ], "budget_remaining": "string", "budget_used": "string", "budget_used_in_cents": 0, "budgeted": true, "can_create_line_items": true, "can_invite": true, "change_orders_enabled": true, "client_lead_name": "string", "client_role_name": "string", "consultant_role_name": "string", "created_at": "2019-08-24T14:15:22Z", "creator_id": "string", "currency": "string", "currency_base_unit": 0, "currency_symbol": "string", "current_status_report_id": "string", "current_user_participation_id": "string", "custom_field_value_ids": [ "string" ], "default_rate": "string", "description": "string", "due_date": "2019-08-24", "effective_due_date": "2019-08-24", "estimated_minutes": 0, "exclude_archived_stories_percent_complete": true, "expenses_in_burn_rate": true, "external_link": { "url": "string", "text": "string" }, "external_reference_ids": [ "string" ], "financial_viewer_ids": [ "string" ], "has_active_expense_report_submissions": true, "has_active_timesheet_submissions": true, "has_budget_access": true, "incoming_email_address": "string", "lock_date": "2019-08-24", "minutes_logged": 0, "next_uncompleted_milestone_id": "string", "non_billable_minutes": 0, "over_budget": true, "participant_ids": [ "string" ], "participation_ids": [ "string" ], "percent_of_budget_used": 0, "percentage_complete": 0, "permissions": { "can_upload_files": true, "can_private_message": true, "can_join": true, "is_participant": true, "access_level": "string", "team_lead": true, "user_is_client": true, "can_change_price": true, "can_change_story_billable": true, "can_post": true, "can_edit": true, "restricted": true, "can_see_financials": true, "is_guest_on_project": true }, "possible_approver_ids": [ "string" ], "posts_require_privacy_decision": true, "price": "string", "price_in_cents": 0, "primary_counterpart_id": "string", "primary_maven_id": "string", "primary_workspace_group_id": "string", "provider_lead_name": "string", "rate_card_id": 0, "require_expense_approvals": true, "require_notes_on_time_entries": true, "require_time_approvals": true, "revenue_recognition_method_id": "string", "revenue_recognition_method_name": "string", "stage": "string", "start_date": "2019-08-24", "status": { "color": "string", "key": "string", "message": "string" }, "status_report_ids": [ "string" ], "stories_are_fixed_fee_by_default": true, "target_margin": 0.1, "task_status_set_id": "string", "task_status_set_name": "string", "task_statuses": [ "string" ], "tasks_default_non_billable": true, "time_trackable": true, "timesheet_submission_ids": [ "string" ], "title": "string", "total_expenses_in_cents": 0, "total_invoiced": "string", "total_minutes_approved": 0, "updated_at": "2019-08-24T14:15:22Z", "workspace_group_ids": [ "string" ], "workspace_invoice_preference_id": 0, "workspace_resource_ids": [ "string" ], "workspace_resources_with_unnamed_ids": [ "string" ] }, "property2": { "access_level": "string", "account_color_id": "string", "account_id": 0, "account_insights_mapping_ids": [ "string" ], "actual_fees_includes_additional_line_items": true, "actual_fees_includes_expenses": true, "approver_id": "string", "approver_ids": [ "string" ], "archived": true, "billable_minutes": 0, "billing_milestone_ids": [ "string" ], "budget_remaining": "string", "budget_used": "string", "budget_used_in_cents": 0, "budgeted": true, "can_create_line_items": true, "can_invite": true, "change_orders_enabled": true, "client_lead_name": "string", "client_role_name": "string", "consultant_role_name": "string", "created_at": "2019-08-24T14:15:22Z", "creator_id": "string", "currency": "string", "currency_base_unit": 0, "currency_symbol": "string", "current_status_report_id": "string", "current_user_participation_id": "string", "custom_field_value_ids": [ "string" ], "default_rate": "string", "description": "string", "due_date": "2019-08-24", "effective_due_date": "2019-08-24", "estimated_minutes": 0, "exclude_archived_stories_percent_complete": true, "expenses_in_burn_rate": true, "external_link": { "url": "string", "text": "string" }, "external_reference_ids": [ "string" ], "financial_viewer_ids": [ "string" ], "has_active_expense_report_submissions": true, "has_active_timesheet_submissions": true, "has_budget_access": true, "incoming_email_address": "string", "lock_date": "2019-08-24", "minutes_logged": 0, "next_uncompleted_milestone_id": "string", "non_billable_minutes": 0, "over_budget": true, "participant_ids": [ "string" ], "participation_ids": [ "string" ], "percent_of_budget_used": 0, "percentage_complete": 0, "permissions": { "can_upload_files": true, "can_private_message": true, "can_join": true, "is_participant": true, "access_level": "string", "team_lead": true, "user_is_client": true, "can_change_price": true, "can_change_story_billable": true, "can_post": true, "can_edit": true, "restricted": true, "can_see_financials": true, "is_guest_on_project": true }, "possible_approver_ids": [ "string" ], "posts_require_privacy_decision": true, "price": "string", "price_in_cents": 0, "primary_counterpart_id": "string", "primary_maven_id": "string", "primary_workspace_group_id": "string", "provider_lead_name": "string", "rate_card_id": 0, "require_expense_approvals": true, "require_notes_on_time_entries": true, "require_time_approvals": true, "revenue_recognition_method_id": "string", "revenue_recognition_method_name": "string", "stage": "string", "start_date": "2019-08-24", "status": { "color": "string", "key": "string", "message": "string" }, "status_report_ids": [ "string" ], "stories_are_fixed_fee_by_default": true, "target_margin": 0.1, "task_status_set_id": "string", "task_status_set_name": "string", "task_statuses": [ "string" ], "tasks_default_non_billable": true, "time_trackable": true, "timesheet_submission_ids": [ "string" ], "title": "string", "total_expenses_in_cents": 0, "total_invoiced": "string", "total_minutes_approved": 0, "updated_at": "2019-08-24T14:15:22Z", "workspace_group_ids": [ "string" ], "workspace_invoice_preference_id": 0, "workspace_resource_ids": [ "string" ], "workspace_resources_with_unnamed_ids": [ "string" ] } }, "time_entries": { "property1": { "active_submission_id": "string", "approved": true, "billable": true, "cost_rate_in_cents": 0, "created_at": "2019-08-24T14:15:22Z", "currency": "string", "currency_base_unit": 0, "currency_symbol": "string", "date_performed": "2019-08-24", "external_reference_ids": [ "string" ], "invoice_id": "string", "is_invoiced": true, "location": "string", "location_id": 0, "notes": "string", "rate_in_cents": 0, "recent_submission_id": "string", "role_id": "string", "story_id": "string", "taxable": true, "time_in_minutes": 0, "updated_at": "2019-08-24T14:15:22Z", "user_can_edit": true, "user_id": "string", "workspace_id": "string" }, "property2": { "active_submission_id": "string", "approved": true, "billable": true, "cost_rate_in_cents": 0, "created_at": "2019-08-24T14:15:22Z", "currency": "string", "currency_base_unit": 0, "currency_symbol": "string", "date_performed": "2019-08-24", "external_reference_ids": [ "string" ], "invoice_id": "string", "is_invoiced": true, "location": "string", "location_id": 0, "notes": "string", "rate_in_cents": 0, "recent_submission_id": "string", "role_id": "string", "story_id": "string", "taxable": true, "time_in_minutes": 0, "updated_at": "2019-08-24T14:15:22Z", "user_can_edit": true, "user_id": "string", "workspace_id": "string" } } }