Get Timesheets
https://app.untetherlabs.com/api/v1/timekeeping/timesheetAllows reading computed timesheet data for one or more providers.
Timesheets are returned for any matching provider who was active during the specified date range even if they worked zero hours. These values are impacted by historical corrections, you are advised to review the Historical Corrections documentation.
Available Expansionsexpand options
- provider: Includes the entire provider object for each timesheet.
- paySegments: Pay segments describe each individually worked span during the timesheet. They are the primitive unit of timekeeping data.
- scheduledPaySegments: Scheduled pay segments represent the expected set of worked segments based on the schedule only, not punch data.
- problems: Includes any warnings and errors for the timesheet.
- approval: Includes whether the entire range is approved, and the exact sub ranges that have been approved.
- signOff: Includes whether the entire range is signed off, and the exact sub ranges that have been signed off.
- historicalCorrections: Includes any historical corrections which are applied to the time range of the timesheet. These are historical corrections which were made to this time range as opposed to applied to/paid out in this range.
- totals: The computed totals broken down by pay code and role for the requested range.
- historicalCorrectionTotals: The totals from any historical corrections which are applied to this timesheet (as opposed to corrections made to this timesheet). Historical correction totals are only available when requesting a particular pay period (by offset or exact reference).
This endpoint may have to do significant computation to generate timesheet data on-the-fly, you are advised to set appropriate timeout and consider caching the results if applicable.
Query parameters#
teamIduuidproviderIduuidpayPeriodIduuidpayPeriodOffsetintegerOptional offset from current pay period. 0 = current, 1 = next, -1 = previous.
startDatestringendDatestringexpandstringAvailable expansions: provider, paySegments, scheduledPaySegments, problems, approval, signOff, historicalCorrections, totals, historicalCorrectionTotals
See Query Parameters for more information on expansions.
pageSizenumber· default 20 · min 1 · max 200cursorstringResponse 200#
itemsTimesheet[]Show Timesheet properties
providerIduuidproviderProviderShow Provider properties
namestring | nullemailstringhireDatestring | nullstatusenum- onboarding
- active
- dismissed
- unmanaged
teamIduuid | nulllicensedRegionsstring[]employmentTypeuuid | nullstartDatestringendDatestringpayPeriodIduuid | nullThe matching pay period, or null if the range does not align to a single pay period.
scheduledShiftsShift[]Show Shift properties
createdAtstringversionnumberVersion number for optimistic locking. Include this when updating to detect conflicts.
provideruuid | nullThe provider of the shift. If null, the shift is an open shift.
providerNamestring | nullThe display name of the provider. Only populated when the request opts in via includeDisplayNames.
startDatestringendDatestringsegmentsShiftSegment[]The segments that make up a shift, ordered by startDate.
Show ShiftSegment properties
importedIdstring | nullIf a segment was created in an external system, this is the ID of the segment in that system.
createdAtstringroleuuid | nullThe role of the shift. Can be null if the shift is pulled from an external system.
roleNamestring | nullThe display name of the segment's role. Only populated when the request opts in via includeDisplayNames.
roleColorstring | nullThe hex color of the segment's role. Only populated when the request opts in via includeDisplayNames.
roleImportedIdstringDEPRECATED The ID of the role in the external system. Once all roles are migrated to the system, this field will be removed.
additionalInfoanyDEPRECATED Additional information about the segment.
isBreakbooleanUsed to denote whether or not the provider will be on break during this segment.
isOnCallbooleantypeenumThe type of the segment.
- working
- Regular working segment
- paid_break
- Paid break segment
- unpaid_break
- Unpaid break segment
- on_call
- On-call segment
startDatestringThe timestamp of when the shift starts.
endDatestringThe timestamp of when the shift ends.
skillRequirementNullableSkillRequirementOption 1 — SkillRequirementCondition
typeenumskillstring· min length 1valuestringOption 2 — SkillRequirementGroup
typeenumentriesone of[]· min items 1labelsstring[]The label IDs associated with this shift segment.
payCodesShiftPayCode[]· max items 1payCodeIduuidThe pay code ID associated with this shift.
valuenumberOnly present for variable pay codes. The value of the pay code for this shift.
teamuuid | nullThe team that the shift is associated with.
notestring | nullA note about the shift. Visible to providers.
isCalloutbooleanWhether the shift is marked as a callout. Callout shifts are hidden from reads unless an endpoint explicitly includes them.
workRuleOverrideuuid | nullpunchesTimecardPunch[]Show TimecardPunch properties
timecardIduuidproviderIduuidgeneratedboolean· default falsecreatedAtstringupdatedAtstringactionstringstateTimecardPunchState- pending
- approved
- rejected
timestringproviderNotestring | nulladminNotestring | nullpaySegmentsPaySegment[]Show PaySegment properties
typePaySegmentType- paid
- unpaid
- on_call
itemIdstring | nullshiftIdstring | nulltimecardIdstring | nullstartDatestringThe start date of the pay segment.
endDatestringThe end date of the pay segment.
payCodesstring[]overtimestring[]timeRangesstring[]workRuleOverridestring | nullrolestring | nullscheduledPaySegmentsPaySegment[]Show PaySegment properties
typePaySegmentType- paid
- unpaid
- on_call
itemIdstring | nullshiftIdstring | nulltimecardIdstring | nullstartDatestringThe start date of the pay segment.
endDatestringThe end date of the pay segment.
payCodesstring[]overtimestring[]timeRangesstring[]workRuleOverridestring | nullrolestring | nullwarningsTimesheetWarning[]typeTimesheetWarningType- clock_in_early
- clock_out_early
- clock_in_late
- clock_out_late
- missing_shift
punchIduuiderrorsTimesheetError[]typeTimesheetErrorType- no_clock_out
- invalid_shift
- missing_timecard
- missing_pay_period_template
shiftIduuidtimecardIduuidapprovalTimesheetApprovalShow TimesheetApproval properties
approvedbooleanrangesTimeRange[]startDatestringendDatestringsignOffTimesheetSignOffShow TimesheetSignOff properties
signedOffbooleanrangesTimeRange[]startDatestringendDatestringhistoricalCorrectionsHistoricalCorrection[]Show HistoricalCorrection properties
statusHistoricalCorrectionStatus- pending
- The historical correction is still being processed. `payCodeDifference` will always be empty.
- completed
changesHistoricalCorrectionChange[]Show HistoricalCorrectionChange properties
createdAtstringactorobject | nullA null actor indicates a system-generated change
namestringnotestringauditLogReferenceuuid | nullA null audit log reference indicates a manually triggered historical correction
auditLogActionstring | nullThe action associated with the audit log reference. Will be null if there is no audit log reference.
payCodeDifferenceHistoricalCorrectionPayCodeDifference[]datestringAlways represents the start of the day.
payCodeuuidrolestring | nullvaluenumberThe difference in minutes (may be negative)
totalsPayCodeTotal[]payCodeIduuidroleIduuid | nullThe role worked during this time, or null for non-working time.
schedulednumberThe number of minutes scheduled for this pay code and role.
actualnumberThe number of minutes actually worked for this pay code and role.
historicalCorrectionTotalsPayCodeTotal[]payCodeIduuidroleIduuid | nullThe role worked during this time, or null for non-working time.
schedulednumberThe number of minutes scheduled for this pay code and role.
actualnumberThe number of minutes actually worked for this pay code and role.
cursorstring