Shift Object

The Zeal Shift object stores earning information for an employee and should be included when an employee check is created. Each shift object consists of earnings components (learn more about earning components here). You may include multiple earnings components in each shift. If you do not include 'wage' in an earning component, Zeal will use the employee's default_wage. Zeal is always adding more earning components. Reach out to Zeal at [email protected] if you have any questions.

attribute

type

description

shiftID

string

Zeal Shift ID

status

string

Holds one of the following values: pending pre-processed processed

employeeID

string

Zeal Employee ID

employeeCheckID

string

Zeal Employee Check ID that contains this shift. See the Employee Check Object

first_name

string

First name of employee

last_name

string

Last name of employee

metadata

object

Custom object you can attach to the shift object. This is useful for storing additional information about the object in a custom, structured format. See Metadata

time

datetime

Datetime of when shift was completed, in the ISO-8601 format in UTC. Example: <<currentYear>>-05-12T15:32:00Z

workLocationID

string

Pass a workLocationID to be assigned to the shift object

wcc_code

string

Can be used by employers to track workers compensation codes for each shift completed

customerAccountID (Early Access)

string

Can be used to attach a customer account to a shift

flsa_ot_exempt (Early Access)

boolean

Exempt shifts from FLSA Overtime rules

hourly

object

Hourly Earning Component

hours (number): Number of regular hours worked in this shift


wage (number): Wage for this employee. If not provided, Zeal uses employee's default_wage


custom_name (string, optional): Name for this earning that will show in the paystub


flat

object

Flat Earning Component.

Used for paying employees a flat amount for a given number of hours. The hours and wage are for record keeping purposes only and do not affect the amount in any way.

hours (number): Number of hours


wage (number, optional): Wage per hour


amount (number): Amount to be paid for set number of hours


custom_name (string, optional): Name for this earning that will show in the paystub


overtime

object

Overtime Earning Component.

Include this earning component in shift if employee worked more than 8 hours during the day.

hours (number): Number of Overtime hours worked in this shift


wage (number, optional): Overtime Wage for this employee. If not provided, Zeal uses employee's default_ot_wage


custom_name (string, optional): Name for this earning that will show in the paystub


doubletime

object

Doubletime Earning Component

Include this earning component for doubletime earnings such as when an employee is working during federal hours or more than 8 hours during the day.

hours (number): Number of Doubletime hours worked in this shift


wage (number, optional): Doubletime Wage for this employee. If not provided, Zeal uses employee's default_dt_wage


custom_name (string, optional): Name for this earning that will show in the paystub


reimbursement

object

Reimbursement Earning Component

Include this component to reimburse an employee for any business-related expenses

amount (number): Amount to be paid in reimbursement


custom_name (string, optional): Name for this earning that will show in the paystub


pto

object

PTO Earning Component

Include this component to mark the amount of PTO hours for an employee

hours (number): Number of PTO hours


wage (number, optional): Wage for this employee. If not provided, Zeal uses employee's default_wage


custom_name (string, optional): Name for this earning that will show in the paystub


apply_accrual_usage (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage


accrual_policy_code (string, optional): The code of the accrual policy to which these hours should be applied. Required only if apply_accrual_usage is true


vacation

object

Vacation Earning Component

Include this earning component to mark vacation hours

hours (number): Number of Vacation hours


wage (number, optional): Wage for this employee. If not provided, Zeal uses employee's default_wage


`custom_name (string, optional): Name for this earning that will show in the paystub


apply_accrual_usage (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage


accrual_policy_code (string, optional): The code of the accrual policy to which these hours should be applied. Required only if apply_accrual_usage is true


sick

object

Sick Pay Earning Component

Include this earning component to mark the number of sick pay hours

hours (number): Number of Sick hours


wage (number, optional): Wage for this employee. If not provided, Zeal uses employee's default_wage


custom_name (string, optional): Name for this earning that will show in the paystub


apply_accrual_usage (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage


accrual_policy_code (string, optional): The code of the accrual policy to which these hours should be applied. Required only if apply_accrual_usage is true


holiday

object

Holiday Earning Component

hours (number): Number of Holiday hours


wage (number, optional): Wage for this employee. If not provided, Zeal uses employee's default_wage


custom_name (string, optional): Name for this earning that will show in the paystub


apply_accrual_usage (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage


accrual_policy_code (string, optional): The code of the accrual policy to which these hours should be applied. Required only if apply_accrual_usage is true


piecework

object

Piecework Earning Component

Use this earning component if an employee needs to be paid on a per-unit or per-project basis

hours (number): Total number of hours spent


units (number): Total number of units produced by this employee


amount_per_unit (number): Amount to be paid out per unit produced by this employee


custom_name (string, optional): Name for this earning that will show in the paystub


charged_tips

object

Charged Tips Earning Component

amount (number): Amount for tip


custom_name (string, optional): Name for this earning that will show in the paystub


discretionary_bonus

object

Discretionary Bonus Earning Component

amount (number): Amount to be paid for discretionary bonus


custom_name (string, optional): Name for this earning that will show in the paystub


nondiscretionary_bonus

object

Non-discretionary Bonus Earning Component

amount (number): Amount to be paid for non-discretionary bonus


custom_name (string, optional): Name for this earning that will show in the paystub


commission

object

Commission Earning Component

amount (number): Amount for Commission


custom_name (string, optional): Name for this earning that will show in the paystub


commodity

object

Commodity Earning Component

amount (number): Amount for Commodity


custom_name (string, optional): Name for this earning that will show in the paystub


shareholder_healthcare_reimbursement

object

Shareholder Premium Earning Component

flat (number): Flat amount for healthcare premium


gross_up

object

Gross-up Earning Component

desired_net (number): The desired net amount that will be converted to gross. Note: the calculated_gross_amount will be returned by the GET endpoint once a check is in the processed status.


custom_name (string, optional): Name for this earning that will show in the paystub


correction

object

Correction Earning Component

hours (number, optional): The number of hours for a correction


amount (number): The gross wage amount to be corrected. Note: this field only accepts a negative number


custom_name (string, optional): Name for this earning that will show in the paystub


meal_break

object

Meal Break Premium Earning Component

units (number): The number of breaks


amount_per_unit (number): The amount to be paid for each break. Note: this field is calculated at the time of check processing


custom_name (string, optional): Name for this earning that will show in the paystub


rest_break

object

Rest Break Premium Earning Component

units (number): The number of breaks


amount_per_unit (number): The amount to be paid for each break. Note: this field is calculated at the time of check processing


custom_name (string, optional): Name for this earning that will show in the paystub


{
  "shiftID": "4712c99283304b7b989179aae36b4590",
  "status": "pending",
  "employeeID": "1234567890",
  "employeeCheckID": "1098876345",
  "first_name": "erlich",
  "last_name": "bachman",
  "metadata": {},
  "time": "2023-04-15T14:00:00Z",
  "wcc_code": "12324",
  "hourly": {
    "hours": 8,
    "wage": 20,
    "custom_name": "custom hourly"
  },
  "overtime": {
    "hours": 2,
    "wage": 30
  },
  "reimbursement": {
    "amount": 8.5
  }
}