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.

attributetypedescription
shiftIDstringZeal Shift ID
statusstringHolds one of the following values:
pendingpre-processedprocessed
employeeIDstringZeal Employee ID
employeeCheckIDstringZeal Employee Check ID that contains this shift. See the Employee Check Object
first_namestringFirst name of employee
last_namestringLast name of employee
metadataobjectCustom 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
timedatetimeDatetime of when shift was completed, in the ISO-8601 format in UTC. Example: CURRENTYEAR-05-12T15:32:00Z
workLocationIDstringPass a workLocationID to be assigned to the shift object
wcc_codestringCan be used by employers to track workers compensation codes for each shift completed
customerAccountID (Early Access)stringCan be used to attach a customer account to a shift
flsa_ot_exempt (Early Access)booleanExempt shifts from FLSA Overtime rules
hourlyobjectHourly 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
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

flatobjectFlat 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

overtimeobjectOvertime 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

doubletimeobjectDoubletime Earning ComponentInclude 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

reimbursementobjectReimbursement Earning ComponentInclude 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

ptoobjectPTO Earning ComponentInclude 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

vacationobjectVacation Earning ComponentInclude 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
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

sickobjectSick Pay Earning ComponentInclude 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

holidayobjectHoliday 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
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

pieceworkobjectPiecework Earning ComponentUse 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_tipsobjectCharged Tips Earning Component
amount (number): Amount for tip
custom_name (string, optional): Name for this earning that will show in the paystub

cash_tipsobjectCash Tips Earning Component
amount (number): Amount for tip
custom_name (string, optional): Name for this earning that will show in the paystub

discretionary_bonusobjectDiscretionary 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_bonusobjectNon-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

commissionobjectCommission Earning Component
amount (number): Amount for Commission
custom_name (string, optional): Name for this earning that will show in the paystub

commodityobjectCommodity Earning Component
amount (number): Amount for Commodity
custom_name (string, optional): Name for this earning that will show in the paystub

shareholder_healthcare_reimbursementobjectShareholder Premium Earning Component
flat (number): Flat amount for healthcare premium

gross_upobjectGross-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

correctionobjectCorrection 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
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_breakobjectMeal 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_breakobjectRest 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

owners_drawobjectOwner'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
{
  "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
  }
}