Labor Reports

GET /locations/:locationId/reports/labor

https://restaurantapi-qa.spoton.com/posexport/v1/locations/:locationId/reports/labor?businessDateKey={{businessDateKey}}
curl --location -g --request GET 'https://restaurantapi-qa.spoton.com/posexport/v1/locations//reports/labor?businessDateKey={{businessDateKey}}' \
--header 'x-api-key;'

Retrieves labor data from SpotOn's Reporting Warehouse for the supplied location and business date (expressed as "YYYYMMDD"). Since this endpoint retrieves data from the warehouse rather the the POS, all historical labor data is available for the location. This also means that there will be lag in terms of data updates for the current business day since the data must flow from the POS to the warehouse via a "non-realtime" ETL process.

Response Payload Structure

The response body for a "200 OK" response will contain a JSON array of time clock entry objects that include overtime data. Each object in the array will be structured as follows:

Field NameField TypeField DescriptionOrg Level Attribute*
locationIdstringThe unique ID for the location.
businessDateKeystringThe "YYYYMMDD" representation of the business date that the labor data was retrieved for.
employeeIdstringThe unique ID of the employee that the time clock entry is for.Yes
employeeFullNamestringThe first and last name of the employee.
jobPositionIdstringThe unique ID of the job position that the employee clocked in under.Yes
jobPositionNamestringThe name of the job position that the employee clocked in under.Yes
timeClockEntryIdstringThe unique ID of the underlying time clock entry.
inAtstringThe RFC 3339 formatted date/time that the shift began.
outAtstringThe RFC 3339 formatted date/time that the shift ended. This value will be null if the shift is currently in progress. Important Note: If this value is null, the time sensitive data for this time clock entry will usually be up to date as of the "lastUpdateDate", minus 10 seconds or so, due to the lag that occurs between the time that the ETL retrieves the data from the POS, and the time that the ETL updates the reporting warehouse.
regularSecondsWorkedint64An integer representing the number of "regular time" seconds worked.
regularPayRateAmountDOLLARAMOUNTThe hourly regular pay rate in effect for this time clock entry.
regularPayAmountDOLLARAMOUNTThe "regular time" pay total.
overtimeSecondsWorkedint64An integer representing the number of overtime seconds worked.
overtimePayRateAmountDOLLARAMOUNTThe hourly overtime pay rate in effect for this time clock entry.
overtimePayAmountDOLLARAMOUNTThe overtime pay total.
totalPayAmountDOLLARAMOUNTTotal pay including regular and overtime pay.
declaredCashTipsAmountDOLLARAMOUNTThe declared amount of cash tips collected by the employee during the shift that this time clock entry represents.
declaredCashTipsToOthersAmountDOLLARAMOUNTThe declared amount of cash tips collected by the employee, but given to others for the shift that this time clock entry represents.
unpaidBreakSecondsint64An integer representing break time in seconds. Note that this value is truncated to the minute.
lastUpdatedAtstringThe RFC 3339 formatted date/time that the time clock entry data was last updated in the reporting warehouse database.

DOLLARAMOUNT

An amount in US dollars expressed as a decimal number string. For example, $1.10 will be represented as "1.10".

📘

*Note that the values of fields marked as "Org Level Attribute" are shared amongst all locations that reside in the same POS organization.

Example Response

[
    {
        "locationId": "Location7372",
        "businessDateKey": "20210316",
        "employeeId": "3xuxgwdl1nhspglemwmqx1lerq",
        "employeeFullName": "Mackenzie Caputo",
        "jobPositionId": "5fc958db98f9f200087179c6",
        "jobPositionName": "Cashier",
        "timeClockEntryId": "0dmrdpup1fhmzl153zkp51b3gy",
        "inAt": "2021-03-16T15:01:34Z",
        "outAt": "2021-03-16T20:30:12Z",
        "regularSecondsWorked": 18168,
        "regularPayRateAmount": "13.50",
        "regularPayAmount": "68.13",
        "overtimeSecondsWorked": 0,
        "overtimePayRateAmount": "20.25",
        "overtimePayAmount": "0.00",
        "totalPayAmount": "68.13",
        "declaredCashTipsAmount": "0.00",
        "declaredCashTipsToOthersAmount": "0.00",
        "unpaidBreakSeconds": 1560,
        "lastUpdatedAt": "2021-03-16T20:32:24Z"
    }
]
Headers
x-api-keyYour API Key
Params
businessDateKey{{businessDateKey}}

The "YYYYMMDD" representation of the business date to retrieve labor data for.
Path Variables
locationIdThe unique ID for the location

GET/locations/:locationId/reports/labor-time-frame

https://restaurantapi-qa.spoton.com/posexport/v1/locations/:locationId/reports/labor?startDateKey={{startDateKey}}&endDateKey={{endDateKey}}
curl --location -g --request GET 'https://restaurantapi-qa.spoton.com/posexport/v1/locations//reports/labor?startDateKey={{startDateKey}}&endDateKey={{endDateKey}}' \
--header 'x-api-key;'

Retrieves labor data from SpotOn's Reporting Warehouse for the supplied location and business date (expressed as "YYYYMMDD"). Since this endpoint retrieves data from the warehouse rather the the POS, all historical labor data is available for the location. This also means that there will be lag in terms of data updates for the current business day since the data must flow from the POS to the warehouse via a "non-realtime" ETL process.

Response Payload Structure

The response body for a "200 OK" response will contain a JSON array of time clock entry objects that include overtime data.

Headers
x-api-keyYour API Key
Params
startDateKey{{startDateKey}}

The "YYYYMMDD" representation of the start date to retrieve labor data for.
endDateKey{{endDateKey}}

The "YYYYMMDD" representation of the end date to retrieve labor data for.
Path Variables
locationIdThe unique ID for the location