If no ID is specified, create a new timesheet for the employee. Otherwise, update the timesheet with the specified ID.

Request

POST https://api.yourpayroll.co.uk/api/v2/ess/{employeeId}/timesheet

Path parameters

Parameter name Value Description Additional
employeeId string Required

Request body

The request body takes a complete EssTimesheetModel resource, containing the following writable properties:

{
    "attachment": {
        "data": "byte",
        "dateCreated": "date-time",
        "dateScanned": "date-time",
        "friendlyName": "string",
        "id": "int32",
        "isDeleted": "boolean",
        "isInfected": "boolean",
        "url": "string"
    },
    "autoApprovedByRosterShiftId": "int32",
    "breaks": [
        {
            "end": "date-time",
            "id": "int32",
            "isPaidBreak": "boolean",
            "start": "date-time",
            "submittedEnd": "date-time",
            "submittedStart": "date-time"
        }
    ],
    "classificationId": "int32",
    "classificationName": "string",
    "comments": "string",
    "cost": "double",
    "costByLocation": "double",
    "costingData": {
        "allowances": [
            {
                "classification": {
                    "id": "int32",
                    "name": "string",
                    "rank": "int32"
                },
                "cost": "double",
                "option": "string",
                "payCategory": "string",
                "payCategoryId": "int32",
                "rateMultiplier": "double",
                "type": "string",
                "units": "double"
            }
        ],
        "isConsolidated": "boolean",
        "liabilities": [
            {
                "amount": "double",
                "cost": "double",
                "includeInShiftCost": "boolean",
                "liabilityCategoryId": "int32",
                "liabilityCategoryName": "string",
                "option": "string"
            }
        ],
        "shiftParts": [
            {
                "actualDuration": "string",
                "baseRate": "double",
                "calculatedRate": "double",
                "classification": {
                    "id": "int32",
                    "name": "string",
                    "rank": "int32"
                },
                "cost": "double",
                "effectiveDuration": "string",
                "endTime": "date-time",
                "isAllowanceOrUnitBased": "boolean",
                "isBreak": "boolean",
                "isPaidBreak": "boolean",
                "leaveCategory": {
                    "id": "int32",
                    "name": "string"
                },
                "location": {
                    "id": "int32",
                    "name": "string",
                    "state": "string"
                },
                "payCategory": "string",
                "payCategoryId": "int32",
                "rateMultiplier": "double",
                "startTime": "date-time",
                "workType": {
                    "id": "int32",
                    "linkType": "string",
                    "name": "string"
                }
            }
        ]
    },
    "costingDataByLocation": {
        "allowances": [
            {
                "classification": {
                    "id": "int32",
                    "name": "string",
                    "rank": "int32"
                },
                "cost": "double",
                "option": "string",
                "payCategory": "string",
                "payCategoryId": "int32",
                "rateMultiplier": "double",
                "type": "string",
                "units": "double"
            }
        ],
        "isConsolidated": "boolean",
        "liabilities": [
            {
                "amount": "double",
                "cost": "double",
                "includeInShiftCost": "boolean",
                "liabilityCategoryId": "int32",
                "liabilityCategoryName": "string",
                "option": "string"
            }
        ],
        "shiftParts": [
            {
                "actualDuration": "string",
                "baseRate": "double",
                "calculatedRate": "double",
                "classification": {
                    "id": "int32",
                    "name": "string",
                    "rank": "int32"
                },
                "cost": "double",
                "effectiveDuration": "string",
                "endTime": "date-time",
                "isAllowanceOrUnitBased": "boolean",
                "isBreak": "boolean",
                "isPaidBreak": "boolean",
                "leaveCategory": {
                    "id": "int32",
                    "name": "string"
                },
                "location": {
                    "id": "int32",
                    "name": "string",
                    "state": "string"
                },
                "payCategory": "string",
                "payCategoryId": "int32",
                "rateMultiplier": "double",
                "startTime": "date-time",
                "workType": {
                    "id": "int32",
                    "linkType": "string",
                    "name": "string"
                }
            }
        ]
    },
    "dimensionValueIds": [
        "int32"
    ],
    "discard": "boolean",
    "durationOverride": "string",
    "employeeId": "int32",
    "employeeName": "string",
    "end": "date-time",
    "externalReferenceId": "string",
    "hiddenComments": "string",
    "id": "int32",
    "ignoreRounding": "boolean",
    "isLocked": "boolean",
    "isOverlapping": "boolean",
    "isUnitBasedWorkType": "boolean",
    "leaveCategoryId": "int32",
    "leaveRequestId": "int32",
    "locationId": "int32",
    "locationName": "string",
    "overdrawsLeave": "boolean",
    "payCategoryId": "int32",
    "payRunId": "int32",
    "paySlipUrl": "string",
    "rate": "double",
    "readOnly": "boolean",
    "reviewedBy": "string",
    "shiftConditionIds": [
        "int32"
    ],
    "source": "string",
    "start": "date-time",
    "status": "string",
    "statusId": "int32",
    "submittedEnd": "date-time",
    "submittedStart": "date-time",
    "unitType": "string",
    "units": "double",
    "workTypeId": "int32",
    "workTypeName": "string"
}

Properties

Name Type Description
attachment object Attachment
attachment.data byte Byte[]
attachment.dateCreated date-time Nullable
attachment.dateScanned date-time Nullable
attachment.friendlyName string String
attachment.id int32 Nullable
attachment.isDeleted boolean Boolean
attachment.isInfected boolean Nullable
attachment.url string String
autoApprovedByRosterShiftId int32 Nullable
breaks[] array
breaks[].end date-time Nullable
breaks[].id int32 Int32
breaks[].isPaidBreak boolean Boolean
breaks[].start date-time Nullable
breaks[].submittedEnd date-time Nullable
breaks[].submittedStart date-time Nullable
classificationId int32 Nullable
classificationName string String
comments string String
cost double Nullable
costByLocation double Nullable
costingData object ShiftCostingData
costingData.allowances[] array
costingData.allowances[].classification object NominalClassification
costingData.allowances[].classification.id int32 Int32
costingData.allowances[].classification.name string String
costingData.allowances[].classification.rank int32 Int32
costingData.allowances[].cost double Decimal
costingData.allowances[].option string ShiftAllowanceOption

Possible values are:

  • Fixed
  • PerHourWorked
  • PercentageOfShiftCost
  • PerShiftUnit
  • PerDay
costingData.allowances[].payCategory string String
costingData.allowances[].payCategoryId int32 Int32
costingData.allowances[].rateMultiplier double Decimal
costingData.allowances[].type string ShiftAllowanceType

Possible values are:

  • Standard
  • AllPurpose
costingData.allowances[].units double Decimal
costingData.isConsolidated boolean Boolean
costingData.liabilities[] array
costingData.liabilities[].amount double Decimal
costingData.liabilities[].cost double Decimal
costingData.liabilities[].includeInShiftCost boolean Boolean
costingData.liabilities[].liabilityCategoryId int32 Int32
costingData.liabilities[].liabilityCategoryName string String
costingData.liabilities[].option string ShiftAllowanceOption

Possible values are:

  • Fixed
  • PerHourWorked
  • PercentageOfShiftCost
  • PerShiftUnit
  • PerDay
costingData.shiftParts[] array
costingData.shiftParts[].actualDuration string TimeSpan
costingData.shiftParts[].baseRate double Decimal
costingData.shiftParts[].calculatedRate double Decimal
costingData.shiftParts[].classification object NominalClassification
costingData.shiftParts[].classification.id int32 Int32
costingData.shiftParts[].classification.name string String
costingData.shiftParts[].classification.rank int32 Int32
costingData.shiftParts[].cost double Decimal
costingData.shiftParts[].effectiveDuration string TimeSpan
costingData.shiftParts[].endTime date-time DateTime
costingData.shiftParts[].isAllowanceOrUnitBased boolean Boolean
costingData.shiftParts[].isBreak boolean Boolean
costingData.shiftParts[].isPaidBreak boolean Boolean
costingData.shiftParts[].leaveCategory object NominalLeaveCategory
costingData.shiftParts[].leaveCategory.id int32 Int32
costingData.shiftParts[].leaveCategory.name string String
costingData.shiftParts[].location object NominalLocation
costingData.shiftParts[].location.id int32 Int32
costingData.shiftParts[].location.name string String
costingData.shiftParts[].location.state string String
costingData.shiftParts[].payCategory string String
costingData.shiftParts[].payCategoryId int32 Int32
costingData.shiftParts[].rateMultiplier double Nullable
costingData.shiftParts[].startTime date-time DateTime
costingData.shiftParts[].workType object NominalWorkType
costingData.shiftParts[].workType.id int32 Int32
costingData.shiftParts[].workType.linkType string WorkTypeLinkTypeRestriction

Possible values are:

  • PayCategory
  • LeaveCategory
  • ShiftCondition
costingData.shiftParts[].workType.name string String
costingDataByLocation object ShiftCostingData
costingDataByLocation.allowances[] array
costingDataByLocation.allowances[].classification object NominalClassification
costingDataByLocation.allowances[].classification.id int32 Int32
costingDataByLocation.allowances[].classification.name string String
costingDataByLocation.allowances[].classification.rank int32 Int32
costingDataByLocation.allowances[].cost double Decimal
costingDataByLocation.allowances[].option string ShiftAllowanceOption

Possible values are:

  • Fixed
  • PerHourWorked
  • PercentageOfShiftCost
  • PerShiftUnit
  • PerDay
costingDataByLocation.allowances[].payCategory string String
costingDataByLocation.allowances[].payCategoryId int32 Int32
costingDataByLocation.allowances[].rateMultiplier double Decimal
costingDataByLocation.allowances[].type string ShiftAllowanceType

Possible values are:

  • Standard
  • AllPurpose
costingDataByLocation.allowances[].units double Decimal
costingDataByLocation.isConsolidated boolean Boolean
costingDataByLocation.liabilities[] array
costingDataByLocation.liabilities[].amount double Decimal
costingDataByLocation.liabilities[].cost double Decimal
costingDataByLocation.liabilities[].includeInShiftCost boolean Boolean
costingDataByLocation.liabilities[].liabilityCategoryId int32 Int32
costingDataByLocation.liabilities[].liabilityCategoryName string String
costingDataByLocation.liabilities[].option string ShiftAllowanceOption

Possible values are:

  • Fixed
  • PerHourWorked
  • PercentageOfShiftCost
  • PerShiftUnit
  • PerDay
costingDataByLocation.shiftParts[] array
costingDataByLocation.shiftParts[].actualDuration string TimeSpan
costingDataByLocation.shiftParts[].baseRate double Decimal
costingDataByLocation.shiftParts[].calculatedRate double Decimal
costingDataByLocation.shiftParts[].classification object NominalClassification
costingDataByLocation.shiftParts[].classification.id int32 Int32
costingDataByLocation.shiftParts[].classification.name string String
costingDataByLocation.shiftParts[].classification.rank int32 Int32
costingDataByLocation.shiftParts[].cost double Decimal
costingDataByLocation.shiftParts[].effectiveDuration string TimeSpan
costingDataByLocation.shiftParts[].endTime date-time DateTime
costingDataByLocation.shiftParts[].isAllowanceOrUnitBased boolean Boolean
costingDataByLocation.shiftParts[].isBreak boolean Boolean
costingDataByLocation.shiftParts[].isPaidBreak boolean Boolean
costingDataByLocation.shiftParts[].leaveCategory object NominalLeaveCategory
costingDataByLocation.shiftParts[].leaveCategory.id int32 Int32
costingDataByLocation.shiftParts[].leaveCategory.name string String
costingDataByLocation.shiftParts[].location object NominalLocation
costingDataByLocation.shiftParts[].location.id int32 Int32
costingDataByLocation.shiftParts[].location.name string String
costingDataByLocation.shiftParts[].location.state string String
costingDataByLocation.shiftParts[].payCategory string String
costingDataByLocation.shiftParts[].payCategoryId int32 Int32
costingDataByLocation.shiftParts[].rateMultiplier double Nullable
costingDataByLocation.shiftParts[].startTime date-time DateTime
costingDataByLocation.shiftParts[].workType object NominalWorkType
costingDataByLocation.shiftParts[].workType.id int32 Int32
costingDataByLocation.shiftParts[].workType.linkType string WorkTypeLinkTypeRestriction

Possible values are:

  • PayCategory
  • LeaveCategory
  • ShiftCondition
costingDataByLocation.shiftParts[].workType.name string String
dimensionValueIds[] array of int32
discard boolean Boolean
durationOverride string Nullable
employeeId int32 Int32
employeeName string String
end date-time Nullable
externalReferenceId string String
hiddenComments string String
id int32 Int32
ignoreRounding boolean Boolean
isLocked boolean Boolean
isOverlapping boolean Boolean
isUnitBasedWorkType boolean Boolean
leaveCategoryId int32 Nullable
leaveRequestId int32 Nullable
locationId int32 Nullable
locationName string String
overdrawsLeave boolean Boolean
payCategoryId int32 Nullable
payRunId int32 Nullable
paySlipUrl string String
rate double Nullable
readOnly boolean Boolean
reviewedBy string String
shiftConditionIds[] array of int32
source string ExternalService

Possible values are:

  • None
  • Saasu
  • Xero
  • MYOB
  • Deputy
  • EmployeeTimePunch
  • ClickSuper
  • IntegratedTimesheets
  • FileImport
  • FileExport
  • QuickBooks
  • Harmony
  • AwardStore
  • Attache
  • IntegratedRostering
  • ReckonAccounts
  • API
  • MicroPower
  • RosterLive
  • NetSuite
  • Kounta
  • TimeAndAttendanceKiosk
  • DetailedFileExport
  • JonasPremier
  • WageEasy
  • Maestrano
  • WorkZone
  • EmployeePortal
  • RosterTemplate
  • Onboarding
  • Admin
  • WorkZoneClockOnOff
  • NetSuiteOneWorld
  • Sage50
  • PensionSync
  • FinancialsOffice
  • ProntoXI
  • PayRunDefault
  • StandardWorkDay
  • Beam
  • PayRunAutomation
  • BureauDashboard
  • Wiise
  • QBOMigrationTool
  • AbridgedFileImport
  • QBOForcedMigration
  • HmrcDpsUpdate
  • HmrcDpsStudentLoan
  • HmrcDpsPostGradLoan
  • Sage50FileImporter
  • FPSFileImporter
  • OAuth
  • FreshBooks
  • StarFileImporter
  • ActiveCampaign
  • SummaryAndDetailsExport
  • Telleroo
  • EmployeeAdvancedHoursUpload
  • BusinessCentral
  • Paytron
  • AccessFinancials
  • Comma
  • Zoho
  • FlatFileEmployeeImporter
  • Twinfield
  • SageAccounting
  • Square
  • Quickfile
  • Tide
  • TideSso
  • FreeAgent
  • Akahu
  • InstaPay
  • Zepto
  • Slack
  • Caxton
  • QuickbooksStandalonePayroll
  • ImportEmployeeSelfSetup
  • XeroIdentityPayrollSignUp
  • XeroIdentityHrSignUp
  • SageIntacct
  • InstaPayDaily
  • Salesforce
  • AutomatedPublicHolidayNotWorked
  • EmployeePayRatesUpload
  • Zapier
  • StapledSuperFund
  • Swag
start date-time Nullable
status string TimesheetLineStatusType

Possible values are:

  • Missing
  • Submitted
  • Approved
  • Rejected
  • Processed
statusId int32 Int32
submittedEnd date-time Nullable
submittedStart date-time Nullable
unitType string String
units double Nullable
workTypeId int32 Nullable
workTypeName string String

Response

The following HTTP status codes may be returned, optionally with a response resource.

Status code Description Resource
200 OK

OK