Deputy · Schema

Timesheet model

Workforce ManagementEmployee SchedulingTime and AttendanceTimesheetsHuman ResourcesShift PlanningAustraliaScheduling

Properties

Name Type Description
id integer
employeeId integer
employeeHistoryId integer
employeeAgreementId integer
start string
end string
mealBreak number
mealBreakSlots array
slots string
totalTime number
totalTimeInvoiced number
cost number
shiftId integer
comments array
isDisputed boolean
isTimeApproved boolean
approvedById integer
isDiscarded boolean
validationFlag object
areaId integer
isInProgress boolean
isLeave boolean
leaveId integer
leaveRuleId integer
isInvoiced boolean
invoiceComment string
isPayRuleApproved boolean
isExported boolean
stagingId integer
isPayStaged boolean
payCycleId integer
fileId integer
customFieldDataId integer
isRealTime boolean
isAutoProcessed boolean
isAutoRounded boolean
isAutoTimeApproved boolean
isAutoPayRuleApproved boolean
parentId integer
children array
employeeComment string
areaName string
locationId integer
locationName string
createdById integer
createdAt string
modifiedAt string
payReturns array
startTimeLocalized string
endTimeLocalized string
View JSON Schema on GitHub

JSON Schema

deputy-tenanttimesheetv2model-timesheet-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/deputy/main/json-schema/deputy-tenanttimesheetv2model-timesheet-schema.json",
  "title": "Timesheet model",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/deputy-v2-api-openapi.yml#/components/schemas/tenanttimesheetv2modelTimesheet",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int32",
      "title": "Timesheets ID"
    },
    "employeeId": {
      "type": "integer",
      "format": "int32",
      "title": "Employee ID"
    },
    "employeeHistoryId": {
      "type": "integer",
      "format": "int32",
      "title": "Employee History ID"
    },
    "employeeAgreementId": {
      "type": "integer",
      "format": "int32",
      "title": "Employee Agreement ID"
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "title": "Timesheets start time"
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "title": "Timesheets end time"
    },
    "mealBreak": {
      "type": "number",
      "format": "float",
      "title": "Meal Break in minutes"
    },
    "mealBreakSlots": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/modelBreak"
      },
      "title": "Break Slots"
    },
    "slots": {
      "type": "string",
      "title": "Slot"
    },
    "totalTime": {
      "type": "number",
      "format": "float",
      "title": "Total Time"
    },
    "totalTimeInvoiced": {
      "type": "number",
      "format": "float",
      "title": "Total Time Invoiced"
    },
    "cost": {
      "type": "number",
      "format": "float",
      "title": "Cost"
    },
    "shiftId": {
      "type": "integer",
      "format": "int32",
      "title": "Shift ID"
    },
    "comments": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Timesheet Comments"
    },
    "isDisputed": {
      "type": "boolean",
      "title": "Is Disputed"
    },
    "isTimeApproved": {
      "type": "boolean",
      "title": "Is Time Approved"
    },
    "approvedById": {
      "type": "integer",
      "format": "int32",
      "title": "Approver ID"
    },
    "isDiscarded": {
      "type": "boolean",
      "title": "Is Discarded"
    },
    "validationFlag": {
      "$ref": "#/$defs/modelValidationFlag",
      "title": "Validation Flag"
    },
    "areaId": {
      "type": "integer",
      "format": "int32",
      "title": "Area ID"
    },
    "isInProgress": {
      "type": "boolean",
      "title": "Is In Progress"
    },
    "isLeave": {
      "type": "boolean",
      "title": "Is Leave"
    },
    "leaveId": {
      "type": "integer",
      "format": "int32",
      "title": "Leave ID"
    },
    "leaveRuleId": {
      "type": "integer",
      "format": "int32",
      "title": "Leave Rule ID"
    },
    "isInvoiced": {
      "type": "boolean",
      "title": "Is Invoiced"
    },
    "invoiceComment": {
      "type": "string",
      "title": "Invoice Comment"
    },
    "isPayRuleApproved": {
      "type": "boolean",
      "title": "Is Pay Rule Approved"
    },
    "isExported": {
      "type": "boolean",
      "title": "Is Exported"
    },
    "stagingId": {
      "type": "integer",
      "format": "int32",
      "title": "Staging ID"
    },
    "isPayStaged": {
      "type": "boolean",
      "title": "Is Pay Staged"
    },
    "payCycleId": {
      "type": "integer",
      "format": "int32",
      "title": "Pay Cycle ID"
    },
    "fileId": {
      "type": "integer",
      "format": "int32",
      "title": "File ID"
    },
    "customFieldDataId": {
      "type": "integer",
      "format": "int32",
      "title": "Custom Field Data"
    },
    "isRealTime": {
      "type": "boolean",
      "title": "Is Real Time"
    },
    "isAutoProcessed": {
      "type": "boolean",
      "title": "Is Auto Processed"
    },
    "isAutoRounded": {
      "type": "boolean",
      "title": "Is Auto Rounded"
    },
    "isAutoTimeApproved": {
      "type": "boolean",
      "title": "Is Auto Time Approved"
    },
    "isAutoPayRuleApproved": {
      "type": "boolean",
      "title": "Is Auto Pay Rule Approved"
    },
    "parentId": {
      "type": "integer",
      "format": "int32",
      "title": "Parent ID if it is a child timesheet"
    },
    "children": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/modelChildTimesheet"
      },
      "title": "child timesheets"
    },
    "employeeComment": {
      "type": "string",
      "title": "employee comment"
    },
    "areaName": {
      "type": "string",
      "title": "Area name"
    },
    "locationId": {
      "type": "integer",
      "format": "int32",
      "title": "Location ID"
    },
    "locationName": {
      "type": "string",
      "title": "Location name"
    },
    "createdById": {
      "type": "integer",
      "format": "int32",
      "title": "Employee ID of who created the Timesheets"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "title": "Timestamp when the Timesheet was created"
    },
    "modifiedAt": {
      "type": "string",
      "format": "date-time",
      "title": "Timestamp when the Timesheet was modified"
    },
    "payReturns": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/modelTimesheetPayReturn"
      },
      "title": "Timesheet Pay Returns"
    },
    "startTimeLocalized": {
      "type": "string",
      "title": "Timesheet start time localized. Format: ISO8601 eg 2012-12-18T13:45:00+01:00"
    },
    "endTimeLocalized": {
      "type": "string",
      "title": "Timesheet end time localized. Format: ISO8601 eg 2012-12-18T13:45:00+01:00"
    }
  },
  "$defs": {
    "modelBreak": {
      "type": "object",
      "properties": {
        "slotType": {
          "$ref": "#/$defs/modelSlotType",
          "title": "type of slot"
        },
        "start": {
          "type": "integer",
          "format": "int32",
          "title": "can start break after seconds passed after shift start"
        },
        "end": {
          "type": "integer",
          "format": "int32",
          "title": "can end break after seconds passed after shift start"
        },
        "state": {
          "$ref": "#/$defs/modelBreakState",
          "title": "Break state"
        },
        "canStartEarly": {
          "type": "boolean",
          "title": "[Deprecated] can employee start break early, override shift template"
        },
        "canEndEarly": {
          "type": "boolean",
          "title": "[Deprecated] can employee end break early, override shift template"
        },
        "isMandatory": {
          "type": "boolean",
          "title": "[Deprecated] is it mandatory to take this break, override shift template"
        },
        "type": {
          "$ref": "#/$defs/tenantsharedv2modelBreakType",
          "title": "type of break"
        },
        "typeLabel": {
          "type": "string",
          "title": "break type name in config"
        },
        "startDateTime": {
          "type": "string",
          "title": "format ISO8601 eg 2024-06-25T13:45:00+01:00"
        },
        "endDateTime": {
          "type": "string",
          "title": "format ISO8601 eg 2024-06-25T13:45:00+01:00"
        }
      }
    },
    "modelBreakState": {
      "type": "string",
      "enum": [
        "NOT_START",
        "IN_PROGRESS",
        "FINISHED",
        "DURATION_ONLY",
        "DURATION_FINISHED"
      ],
      "default": "NOT_START",
      "title": "Break States"
    },
    "modelChildTimesheet": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string",
          "title": "child shift start time, format ISO8601 eg 2012-12-18T13:45:00+01:00"
        },
        "end": {
          "type": "string",
          "title": "child shift end time, format ISO8601 eg 2012-12-18T13:45:00+01:00"
        },
        "areaId": {
          "type": "integer",
          "format": "int32"
        },
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "areaName": {
          "type": "string",
          "title": "Area name"
        },
        "locationId": {
          "type": "integer",
          "format": "int32",
          "title": "Location ID"
        },
        "locationName": {
          "type": "string",
          "title": "Location name"
        }
      }
    },
    "modelSlotType": {
      "type": "string",
      "enum": [
        "BREAK",
        "WORK",
        "CUSTOM"
      ],
      "default": "BREAK",
      "title": "Type of Slot"
    },
    "modelTimesheetPayReturn": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "payRuleId": {
          "type": "integer",
          "format": "int32"
        },
        "value": {
          "type": "number",
          "format": "float"
        },
        "cost": {
          "type": "number",
          "format": "float"
        },
        "overridden": {
          "type": "boolean"
        },
        "overrideComment": {
          "type": "string"
        },
        "toilValue": {
          "type": "number",
          "format": "float"
        },
        "toilMultiplier": {
          "type": "number",
          "format": "float"
        }
      }
    },
    "modelValidationFlag": {
      "type": "string",
      "enum": [
        "VALIDATION_FLAG_NONE",
        "VALIDATION_FLAG_GENERIC_ERROR",
        "VALIDATION_FLAG_DIFFERS_FROM_ROSTER",
        "VALIDATION_FLAG_SHORTER_THAN_ROSTER",
        "VALIDATION_FLAG_LONGER_THAN_ROSTER",
        "VALIDATION_FLAG_NO_MEALBREAK",
        "VALIDATION_FLAG_SHORTER_MEALBREAK",
        "VALIDATION_FLAG_LONGER_MEALBREAK",
        "VALIDATION_FLAG_LATE_MEALBREAK",
        "VALIDATION_FLAG_INSUFFICIENT_MEALBREAK",
        "VALIDATION_FLAG_OUTSIDE_GEO_BOUNDARIES",
        "VALIDATION_FLAG_SHIFT_PLAN_ISSUES",
        "VALIDATION_FLAG_NO_START_PHOTO",
        "VALIDATION_FLAG_NO_END_PHOTO",
        "VALIDATION_FLAG_PHOTO_DOES_NOT_MATCH",
        "VALIDATION_FLAG_CLOSED_BY_SYSTEM",
        "VALIDATION_FLAG_SHORTER_REST_BREAK",
        "VALIDATION_FLAG_SHORTER_MEAL_BREAK",
        "VALIDATION_FLAG_MISSED_SCHEDULE_BREAK",
        "VALIDATION_FLAG_ATTESTATION_PREVENT_CLOCK_IN",
        "VALIDATION_FLAG_ATTESTATION_NOTIFY_MANAGER"
      ],
      "default": "VALIDATION_FLAG_NONE"
    },
    "tenantsharedv2modelBreakType": {
      "type": "string",
      "enum": [
        "MEAL_BREAK",
        "REST_BREAK"
      ],
      "default": "MEAL_BREAK",
      "title": "Break Type"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/deputy-tenanttimesheetv2model-timesheet"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.