Work Shifts

Manage work shifts of employees.

Endpoints


get/api/v3/office/work_shifts

Return a paginated list of office/work_shifts

Input Schema

object
page?:
object
The page number, default to 1
number?: integer
The number of items per page, default to 1000
size?: integer
The sort order, comma separated list of fields. See sorting section for more details
sort?: string
Set to true to return the total number of items in the collection
count?: boolean
filter?:
object
id?: unknown
employee_id?: unknown
date?: unknown
starts_at?: unknown
ends_at?: unknown
shift_data?: unknown
raw_shift_data?: unknown
per_project_data?: unknown
project_ids?: unknown
total_validated_time?: unknown
total_productive_time?: unknown
total_billable_time?: unknown
total_unbillable_time?: unknown
total_billable_overtime?: unknown
total_unbillable_overtime?: unknown
recovered_shift_time?: unknown
missed_shift_time?: unknown
validated_at?: unknown
validated_by_id?: unknown
date?: unknown
between?: unknown
by_employee?: unknown
status?: unknown
project_ids__contains?: unknown
The related resources to include in the response. Allowed resources are:
- `employee`
included?:
array
Elements: string
The fields to include in the response.
The key is the resource type and the value is an array of fields.
fields?:
dictionary
Values: array

Typescript

type InputSchema = {
  page?: {
    // The page number, default to 1
    number?: number;
    // The number of items per page, default to 1000
    size?: number;
  };
  // The sort order, comma separated list of fields. See sorting section for more details
  sort?: string;
  // Set to true to return the total number of items in the collection
  count?: boolean;
  filter?: {
    id?: any;
    employee_id?: any;
    date?: any;
    starts_at?: any;
    ends_at?: any;
    shift_data?: any;
    raw_shift_data?: any;
    per_project_data?: any;
    project_ids?: any;
    total_validated_time?: any;
    total_productive_time?: any;
    total_billable_time?: any;
    total_unbillable_time?: any;
    total_billable_overtime?: any;
    total_unbillable_overtime?: any;
    recovered_shift_time?: any;
    missed_shift_time?: any;
    validated_at?: any;
    validated_by_id?: any;
    date?: any;
    between?: any;
    by_employee?: any;
    status?: any;
    project_ids__contains?: any;
  };
  // The related resources to include in the response. Allowed resources are:
  // - `employee`
  included?: Array<string>;
  // The fields to include in the response.
  // The key is the resource type and the value is an array of fields.
  fields?: { [key: string]: Array<any> };
};

Output Schema

object
data:
array
Elements:
object
type: string
id?: string
attributes?:
object
id?: integer
employee_id?: integer
date?: date
starts_at?: datetime
ends_at?: datetime
shift_data?: open struct
raw_shift_data?: open struct
per_project_data?: open struct
project_ids?: array
total_validated_time?: integer
total_productive_time?: integer
total_billable_time?: integer
total_unbillable_time?: integer
total_billable_overtime?: integer
total_unbillable_overtime?: integer
recovered_shift_time?: integer
missed_shift_time?: integer
validated_at?: datetime
validated_by_id?: integer
relationships?: open struct
included?:
array
Elements: open struct

Typescript

type OutputSchema = {
  data: Array<{
    type: string;
    id?: string;
    attributes?: {
      id?: number;
      employee_id?: number;
      date?: Date;
      starts_at?: Date;
      ends_at?: Date;
      shift_data?: Record<string, any>;
      raw_shift_data?: Record<string, any>;
      per_project_data?: Record<string, any>;
      project_ids?: Array<any>;
      total_validated_time?: number;
      total_productive_time?: number;
      total_billable_time?: number;
      total_unbillable_time?: number;
      total_billable_overtime?: number;
      total_unbillable_overtime?: number;
      recovered_shift_time?: number;
      missed_shift_time?: number;
      validated_at?: Date;
      validated_by_id?: number;
    };
    relationships?: Record<string, any>;
  }>;
  included?: Array<Record<string, any>>;
};


patch/api/v3/office/work_shifts/:employee_id

Update employee work shift.

Input Schema

object
employee_id: integer
data:
object
attributes:
object
date: date
missed_shift_time?: integer
recovered_shift_time?: integer
shift_data:
array
Elements:
object
from: datetime
to: datetime
project_id?: integer or null
productive: boolean
billable: boolean
details: string
project_data?:
array
Elements:
object
project_id: integer
total_time: integer
productive_time: integer
billable_time: integer
billable_overtime: integer
unbillable_time: integer
unbillable_overtime: integer
validate?: boolean or null

Typescript

type InputSchema = {
  employee_id: number;
  data: {
    attributes: {
      date: Date;
      missed_shift_time?: number;
      recovered_shift_time?: number;
      shift_data: Array<{
        from: Date;
        to: Date;
        project_id?: number | null;
        productive: boolean;
        billable: boolean;
        details: string;
      }>;
      project_data?: Array<{
        project_id: number;
        total_time: number;
        productive_time: number;
        billable_time: number;
        billable_overtime: number;
        unbillable_time: number;
        unbillable_overtime: number;
      }>;
      validate?: boolean | null;
    };
  };
};


post/api/v3/office/work_shifts/:employee_id

Create employee work shift.

Input Schema

object
employee_id: integer
data:
object
attributes:
object
validated_at?: datetime or null
validated_by_id?: integer or null
shift_data?:
array
Elements:
object
from: datetime
to: datetime
project_id?: integer or null
productive: boolean
billable: boolean
details: string

Typescript

type InputSchema = {
  employee_id: number;
  data: {
    attributes: {
      validated_at?: Date | null;
      validated_by_id?: number | null;
      shift_data?: Array<{
        from: Date;
        to: Date;
        project_id?: number | null;
        productive: boolean;
        billable: boolean;
        details: string;
      }>;
    };
  };
};


get/api/v3/office/work_shifts/:employee_id/date/:date

Show employee work shift by date.

Input Schema

object
employee_id: integer
date: date

Typescript

type InputSchema = { employee_id: number; date: Date };


get/api/v3/office/work_shifts/:employee_id/total_missed_balance

Get missed shift time balance.

Input Schema

object
employee_id: integer

Typescript

type InputSchema = { employee_id: number };


get/api/v3/office/work_shifts/pending

Count all work shift per date.

Input Schema

object
starts_at: date
ends_at: date
employee_id?: integer or null

Typescript

type InputSchema = {
  starts_at: Date;
  ends_at: Date;
  employee_id?: number | null;
};


get/api/v3/office/work_shifts/report

Get consolidated report for finance purposes.

Input Schema

object
from: date
to: date

Typescript

type InputSchema = { from: Date; to: Date };