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 support@zeal.com 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: 2024-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 Componenthours (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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
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
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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
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<br>apply_accrual_usage (boolean, optional): If true, the number of hours will be applied to the specified accrual policy's usage<br>accrual_policy_code(string, optional): The code of the accrual policy to which these hours should be applied. Required only ifapply_accrual_usage is true<br>bill_rate_type(string, only required ifbill_rateis provided): The type of bill rate set for this earning. Can be:<br>-flat: a fixed bill rate amount<br>- percentage: a percentage markup applied to the pay rate<br>- markup_dollar: a dollar amount added on top of the pay rate<br>bill_rate(number, only required ifbill_rate_typeis provided): The numeric value of the bill rate. Its interpretation depends on thebill_rate_type`
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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
holiday object Holiday Earning Componenthours (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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
charged_tips object Charged Tips Earning Componentamount (number): Amount for tip
custom_name (string, optional): Name for this earning that will show in the paystub
cash_tips object Cash Tips Earning Componentamount (number): Amount for tip
custom_name (string, optional): Name for this earning that will show in the paystub
discretionary_bonus object Discretionary Bonus Earning Componentamount (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 Componentamount (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 Componentamount (number): Amount for Commission
custom_name (string, optional): Name for this earning that will show in the paystub
commodity object Commodity Earning Componentamount (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 Componentflat (number): Flat amount for healthcare premium
gross_up object Gross-up Earning Componentdesired_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 Componenthours (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
bill_rate_type (string, only required if bill_rate is provided): The type of bill rate set for this earning. Can be:
- flat: a fixed bill rate amount
- percentage: a percentage markup applied to the pay rate
- markup_dollar: a dollar amount added on top of the pay rate
bill_rate (number, only required if bill_rate_type is provided): The numeric value of the bill rate. Its interpretation depends on the bill_rate_type
meal_break object Meal Break Premium Earning Componentunits (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 Componentunits (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
owners_draw object Owner's Draw earning component (Early Access)amount (number): Amount to be paid
custom_name (string, optional): Name for this earning that will show in the paystub

Example Shift Object

{
  "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": "Downtown Pickup #1234",
    "bill_rate_type": "percentage",
    "bill_rate": 15
  },
  "overtime": {
    "hours": 2,
    "wage": 30,
    "bill_rate_type": "percentage",
    "bill_rate": 20
  },
  "reimbursement": {
    "amount": 8.5
  }
}